por que uma coluna do Excel formatada como número perde seu zero inicial quando a coluna é formatada como texto?

8

Eu tenho que exportar uma planilha para CSV. Uma das colunas é um CEP com códigos postais da costa leste que têm um zero à esquerda. Quando reformato essa coluna como Texto na esperança de preservar o zero inicial na exportação, imediatamente a coluna passa da justificada direita para a esquerda justificada e o zero inicial desaparece! Eu esperaria exatamente o oposto, que poderia perder o zero se reformatado do texto para o número.

Como preservo esse zero inicial?

mrblint
fonte

Respostas:

6

Teoria

O Excel possui duas noções diferentes e não relacionadas quando se trata de dados nas células: valor bruto / armazenado e valor de exibição .

O valor "bruto" ou armazenado são os dados reais em uma representação não formatada. O tipo de dados brutos pode ser número, texto, data etc.

O valor "display" é como os dados são formatados. Ao usar a GUI do Excel, você vê o valor de exibição, não o valor bruto.

O problema é que, quando você exporta para CSV, ele pega o valor bruto e exporta, não o valor de exibição! Portanto, mesmo se você formatar os dados para conter zeros à esquerda usando a caixa de diálogo Formatar Células, se o valor subjacente não contiver um zero à esquerda, sua exportação também não.

Você precisa formatar todos os dados como texto (na planilha do Excel) e, em seguida, adicionar um zero à esquerda, quando apropriado. Isso eliminará o valor de exibição, fazendo com que você pense que você tem um zero à esquerda no valor bruto (você não tem).

Solução

O zero não existe como parte do conteúdo da célula, apenas a formatação; portanto, quando você formata como texto, não o recebe. Você pode tentar usar uma fórmula na próxima coluna; por exemplo, se você tiver códigos postais de 5 dígitos (?) Com entradas em A2, coloque esta fórmula em B2

=TEXT(A2,"00000")

copie a fórmula na coluna

O resultado disso é um valor de texto (possivelmente com zero inicial real). Depois de ter esse valor em outra coluna, você pode copiar e colar "Colar valores" sobre a coluna original para substituir todos os dados subjacentes pelos dados preenchidos com zero. Em seguida, exclua a coluna extra.

barry houdini
fonte
Oi Barry, excelente resposta, eu adicionei um pouco de fundo "teoria" em vez de postar mais uma resposta ... fique à vontade para editar, como desejado, esta é uma resposta colaborativa :-)
allquixotic
@allquixotic, sem problemas, boas adições #
barry houdini
2

Você tem números nas células, não texto. Um valor numérico de 02010 é igual ao número 2010. A formatação que como texto fornece a representação de texto normal de 2010, não 02010.

Para preservar zeros à esquerda, insira os dados como uma sequência, não como um número. Por exemplo, digite = "02010" como o valor.

Para exibir simplesmente zeros à esquerda, supondo que todos os números tenham o mesmo comprimento (digamos, cinco dígitos), use um formato Personalizado. Selecione 0 na lista de lista personalizada e altere-o para 00000. Todos os números serão exibidos como cinco dígitos, com zeros à esquerda. No entanto, se você salvar esses dados em um arquivo CSV, os zeros à esquerda não estarão lá. A única maneira de mantê-los é inserir os dados como cadeias.

Charles Engelke
fonte
Estamos recebendo esses dados de vários terceiros. Parece que estamos sem sorte, pois estamos à mercê das pessoas que inserem os dados e não podemos forçá-las a fazê-lo de maneira inteligente. Fiquei surpreso que convertê-lo em texto tirou o zero. Esse IMO é um efeito colateral, não uma mera representação de string do valor exibido, enquanto eu esperaria que uma célula formatada como número retirasse o zero inicial.
Mrblint
0

Faz muito tempo que não usei o Excel, mas sempre prefixo o zero inicial com um 'e o Excel o trataria como uma string em vez de tentar interpretá-lo como um número.

Sander Steffann
fonte