Por que o Excel trata seqüências numéricas longas como notação científica, mesmo depois de alterar o formato da célula para o texto

118

Estou tentando processar alguns dados no Excel. Os dados incluem números de conta numéricos e outras seqüências numéricas longas (como MEIDs de telefone celular). Como não estou fazendo operações matemáticas nessas seqüências, quero que o Excel as trate como texto sem formatação.

Aqui está o que está me deixando louco (este é o Excel 2010):

  1. Pegue um número longo como 1240800388917 e cole-o em uma célula em uma nova planilha.
  2. O formato de célula padrão do Excel é geral; portanto, a sequência é apresentada em notação científica como 1.2408E + 12
  3. Clique com o botão direito do mouse na célula, selecione Formatar Células, defina o formato como Texto

A célula ainda é exibida em notação científica, mesmo que o formato tenha sido definido como texto.

Agora, se eu seguir as etapas em uma ordem diferente:

  1. Formate uma célula vazia como texto. Clique com o botão direito do mouse na célula, selecione Formatar Células, defina o formato como Texto
  2. Pegue um número longo como 1240800388917 e cole-o na célula formatada em texto

Agora, a célula é exibida como uma sequência e não em notação científica.

Os resultados restantes na notação científica, mesmo que a célula esteja formatada como texto, apenas parecem quebrados para mim. Eu já vi soluções alternativas sugeridas, como: use a importação de CSV e defina o formato como texto, adicione um caractere de espaço ao início de cada sequência numérica e outras.

Existe um bom trabalho simples para manter facilmente essas seqüências de caracteres formatadas como texto?

Por que diabos o Excel faz isso?

Perguntas relacionadas ao SU que encontrei: Como você pode fazer o Excel 2007 parar de formatar grandes números como notação científica? e Esse comportamento do Excel com um número hexadecimal grande é esperado?

Michael Levy
fonte
O número longo 1240800388917é copiado de outra célula? Ou apenas texto simples, como no Bloco de Notas?
wilson

Respostas:

24

Ah, memórias de dados remontando a partir de quando eu fiz um número maciço de verificação cruzada no Excel (nunca mais). Quando você insere longas seqüências numéricas no Excel, tente dizer, 12345678901234567890 (20 dígitos), o Excel geralmente os converte para você , o que significa que o número de 20 dígitos que você acabou de digitar foi reduzido para ser apenas cerca de quinze números significativos.

Observe também: a conversão é um truncamento, em vez de arredondamento. (12345678901234567890 é 1,2345678901234 6 E + 19, mas o Excel mostrará 1,2345678901234 5 E + 19)

Isso ocorre no ponto de entrada; portanto, quando ele entra, detalhes adicionais são perdidos; mesmo que você diga ao Excel que realmente quis dizer que era texto, e não um número, você está sem sorte e, por isso, por que sua primeira sequência não funciona.

tanantish
fonte
1
Sim, vejo esse comportamento quando minha string numérica tem mais de 15 dígitos significativos. 12345678901234567890 se torna 1,23456789012345E + 19 como você diz. Quando clico na célula, a caixa de edição mostra a sequência truncada e preenchida com zeros como 12345678901234500000. O que é estranho é que faz a mesma coisa com números que não excedem o limite de 15 dígitos do Excel. Se eu colar em 12345678901234, ele será exibido como 1.23457E + 13, mas quando eu clico, a caixa de edição ainda mostra a sequência original. Agora, o que é estranho é que, se eu formatar essa célula para texto, ela ainda será exibida em notação científica. Irritante.
22612 Michael Levy
7
Na verdade, essa é uma peculiaridade de exibição - definir o formato de geral para texto não a mostrará imediatamente como a sequência original, mas se você entrar e editar os dados (como em, basta clicar na zona de edição e clicar em ) que vai atualizar para ser exatamente o que você colocar.
tanantish
11
Quick Hack: defina a formatação nas colunas apropriadas, copie e cole no bloco de notas e depois no Excel.
18715 Brian
9
Isso deve não ser a resposta aceita : ver a próxima abaixo.
Javadba
3
Então, você relembrou e reiterou o problema. Agora, como você corrige isso?
user3932000
163

Isso funcionou para mim no Excel 2010. Selecione a coluna, clique com o botão direito do mouse em Formatar células, Personalizar e escolha a opção 0 (segunda opção abaixo de Geral).

Anônimo
fonte
25
Isso é muito melhor do que a resposta aceita, que diz "você está meio sem sorte"! Eu tinha um arquivo CSV com esse problema e a solução de formatação personalizada funcionou perfeitamente.
Davidir 17/04
4
deve ser aceita resposta, alguém deve / pode mudar?
Qwertzman 09/07/2015
11
Isso ainda parece estar truncado no meu teste. Usando o Excel 2013, digitei o seguinte em uma célula 12345678901234567890. Quando pressiono enter, isso é exibido como 1.23457E + 19 e o valor subjacente é alterado para 12345678901234500000 para que haja perda de dados. Isso não responde à pergunta original.
22615 Michael Levy
1
Aqui estou, um ano depois, revisitando a mesma resposta e desejando poder votá-la novamente.
precisa saber é
7
Esta resposta corrige a formatação, mas não preserva os dados inseridos. É por isso que não posso aceitá-lo como uma resposta correta. Eu postei um pequeno vídeo para mostrar. Ao seguir essas instruções e inserir um número inteiro longo como 12345678901234567890, você perde a precisão ao tratá-lo como numérico, mesmo que seja exibido em notação não científica. O Excel o trata como o valor 12345678901234500000. Somente tratando-o como texto, é possível manter todos os dígitos. Veja youtu.be/7EDcR7TQpYs
Michael Levy
13

Um único apóstrofo 'antes de um número forçará o Excel a tratar um número como texto (incluindo um alinhamento à esquerda padrão). E se você tiver erros sinalizados, ele será exibido como um número armazenado como erro de texto na célula.

dav
fonte
Isso não é sempre o caso. Às vezes, o Excel mesclou meus dados mesmo com um apóstrofo principal.
Cerin
3
Cerin, um ponto justo - nunca subestime a capacidade do Excel (ou da Microsoft) de fazer algo completamente inexplicável ou repetível. No entanto, o truque do apóstrofo geralmente funciona como anunciado.
DAV
1
você pode fazer isso em massa? Eu tenho dados com 60000 células que desejo converter em texto.
usar o seguinte código
Ou apenas escolha formatar como texto no botão direito do mouse, menu Formatar Células;)
Shayan
13

Descobri que no Office 2010, se você formatar a coluna primeiro e depois colar os dados, eles mostrarão os números grandes corretamente.

M Akin
fonte
Provavelmente porque está armazenado como uma string. O que acontece se você fizer com que outra célula seja, digamos, o conteúdo da célula multiplicado por 2?
Peter Mortensen
1
Isso funciona no Excel 2016 / Office 365. Selecionei todas as células, as formatei como Texto e colei meus dados copiados e eles não apareceram com a notação científica irritante. Obrigado!
frezq
Isso também funcionou para mim no Planilhas Google ... "Formato> Número> 0" antes de colar em valores e não se converteu em notação científica, além de NÃO perder valores finais (arredondamento para valores), o que acontecia com muita frequência .
twknab 30/09
12

Tente isso ... isso funciona para mim, Excel 2013.

=""&a1

onde a1 mantém o valor numérico. Depois, copie a coluna e cole na coluna original.

Rok
fonte
Isso funciona no Excel 2010 também.
Paul G
2
Como um nó de lado: ="1240800388917"faz o mesmo
nixda
5

Você pode formatar células como Personalizado> #

Isso pode ser aplicado depois de colar os dados na coluna, mas você deve fazê-lo antes de salvar a planilha.

Eu trabalho muito com códigos de barras (UPC) e o Excel os formatará como notação científica por padrão. Me deixa louco! Por que isso não é uma opção que nunca saberei.

Graham
fonte
Isso não transforma os números em texto, o que pode causar problemas mais tarde. Mas bem ...
Joris Meys
5

Estou ciente da idade da pergunta, mas essa foi a que encontrei após a pesquisa no google e que não respondeu à minha pergunta (por que formatar como texto não funciona e por que o número é reduzido para 15 dígitos após o formato para texto).

A resposta curta é: você não pode trabalhar com o seu número da maneira que desejar depois de inserir o valor numérico e tocar em Enter. No momento em que você fizer isso, o número será truncado para 15 dígitos e apresentado como exponencial.

Isso não é um bug, é um recurso.

Tudo o que você fizer depois disso usará o valor truncado, portanto, nenhum truque de formatação ajudará. No entanto, você pode usar a Text to columnsopção de converter a notação exponencial ao texto (Clique no cabeçalho da coluna, clique Text to datae, em seguida Delimited, Next, desmarque todas as caixas de delimitador, Selecione Textno Column data formate depois Finish) para que os valores convertidos em texto e imediatamente exibido como número de 15 dígitos. Como serão apenas 15 dígitos, se você tiver um número maior, o resto será perdido.

Para ter o número na planilha exatamente da maneira como você o digitou, é necessário armazená-lo como texto. Portanto, você deve preceder com apóstrofo ou formatar células como texto antes de digitar / copiar valores nele. Se "às vezes não funcionar", desculpe, você faz algo errado ou tem algum tipo de correção automática ativada (se você usa apóstrofo e grande número> 15 dígitos, o Excel o trata como um valor errado e sinaliza a célula com aviso mensagem, de modo que esta observação não é pessoal nem crítica).

Outra maneira de fazer isso em números em massa é importar valores do arquivo de texto. Ouso dizer que é o único caminho para a maioria das situações. E não se esqueça de importar o arquivo, e não apenas abri-lo, pois o Excel trata o csvtipo como formato nativo e apara números grandes a 15 dígitos, como é óbvio.

Agora, para a última edição. Se você inserir um valor numérico grande na célula do Excel formatada como texto, ele ainda será exibido em notação científica, desde que a célula não seja larga o suficiente. É irritante, mas efeito colateral de alguns algoritmos internos do Excel. Apenas amplie a célula e você verá todo o valor.

AcePL
fonte
3

Excel 2010: isso funciona uma coluna por vez e nem por uma linha. Selecione a coluna ou subconjunto de uma coluna, na guia Dados, selecione "Texto em colunas" e vá direto para "Concluir". Não há mais notação científica.

Eu concordo com os muitos usuários do Excel, é criminoso que não haja opção para impedir a notação científica!

gsoClarke
fonte
1
No meu teste no Excel 2007, tive que clicar Next >duas vezes, selecionar "Texto" e clicar Finish. Você pode aplicar isso a linhas transpondo, convertendo e transpondo de volta.
Scott
1

No Excel 2013, aconteceu o mesmo comigo e eu apenas fui para Formatar Células -> Número e verifiquei se a casa decimal estava definida como "0".

Christopher Chipps
fonte
1
semelhante à resposta anônima acima, mas selecionar "Número" de alguma forma faz mais sentido do que selecionar "personalizado". Além disso, ele fica mais alto na lista. de qualquer maneira, ele faz a mesma coisa, mas eu gosto mais disso
billynoah
0

Selecione todas as células - ou, para facilitar as coisas - selecione a planilha inteira e clique em Formatar células , depois em Texto .

Automaticamente, toda a planilha usará texto. Você não precisa fazer célula por célula.

Dima
fonte
Infelizmente, isso não funciona. O texto será apenas em notação científica, que é todo o problema ...
Joris Meys
0
  1. Copie / cole o campo do problema em uma nova planilha na coluna A

  2. Copie / cole a Coluna A no arquivo de texto

  3. Formate a Coluna B para texto e cole o arquivo de texto na Coluna B

  4. Na coluna C:

    =IF(ISNUMBER(SEARCH("+",B1)),A1,"")
    
  5. Converta a coluna C em um formato numérico sem decimais

  6. Copie / cole a coluna C no arquivo de texto

  7. Formate a coluna D em texto e cole o arquivo de texto na coluna D

  8. Na coluna E:

    =IF(IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2))=0,"",IF(IF(B2=A2,A2,D2)=0,A2,IF(B2=A2,A2,D2)))
    
  9. Copie / cole a Coluna E no bloco de notas

  10. Excluir dados no campo do problema e formatar a coluna em texto

  11. Copie / cole dados do arquivo de texto no campo do problema

DataWizard
fonte
0

Isso funcionou para mim no Excel 2013, incluindo copiar e colar as células para outros programas. A filtragem dos dados ajudou, especialmente nas etapas de edição.

  1. Selecione a (s) célula (s) desejada (s).
  2. Aplique o formato numérico "Texto". (Tente Alt, H, N e depois "Texto".)

Em seguida, para cada uma das células desejadas:

  1. Entre no modo de edição. (Tente F2.)
  2. Confirme sua edição com Enter (válido para colunas) ou Tab (válido para linhas). Não altere o conteúdo.

Seu número aparecerá normalmente, mesmo com 100 dígitos. =)

skia.heliou
fonte
Não funciona para várias células (Excel 365)
Albin
0

O Excel é frustrante, pois os dados CSV / em massa funcionam assim. Trabalhe com o LibreOffice, se possível, ele não fará isso, ou seja, se você abrir a mesma planilha (.xlsx) no Libreoffice, os grandes 'números' que são realmente cadeias de caracteres não serão exibidos na notação científica (que é uma decisão absurda pelo Excel). A fidelidade de arquivos do LibreOffice é ótima: abra o mesmo .xlsx no Excel novamente e a notação científica instantaneamente "funciona" como de costume.

Tim Richardson
fonte