O Excel 2007 está convertendo campos CSV em fórmulas

7

Eu tenho um problema com um arquivo CSV que tem números de telefone armazenados em seu formato internacionalizado (+ 1-800-555-1234). Ao abrir este CSV no Excel 2007, ele converte esses dados em uma fórmula e exibe o resultado (= 1-800-555-1234; resultando em -2588).

Como eu digo ao Excel para lidar com este campo como uma string?

Aqui está uma amostra - salve isso em um arquivo .csv e abra no Excel para reproduzir o problema:

Number,Name
+1-800-555-1234,Bob
+1-800-555-1200,Jim
dlux
fonte

Respostas:

12

Abra uma planilha em branco e selecione 'Dados> Obter dados externos> Do texto' (layout de menu do Excel 2007). Então, quando você abrir o seu arquivo CSV, você obterá o 'Assistente de importação de texto', que permitirá que você especifique colunas específicas como Texto em vez do padrão 'Geral'.
Pode ser necessário especificar a codificação de origem do arquivo apropriada (por exemplo, Unicode (UTF-8)) na primeira página do assistente, para manter os caracteres '+' iniciais.

Além disso, como diz Diago, se você renomear o arquivo de .csv para .txt e abrir no Excel, receberá o Assistente de importação de texto sem ter que passar por 'Dados> Obter dados externos ...'.

peles
fonte
Isso fez o truque, e eu precisei especificar UTF-8 para manter "+ 1-" no início do campo. Obrigado!
Dlux
+1 para UTF-8. Eu estava pensando que a codificação poderia ter um efeito, mas depois arranhei isso como uma má ideia.
BinaryMisfit
4

Ao salvar o arquivo, use uma extensão TXT em vez de CSV. Isso forçará o Assistente de importação de texto para iniciar e você pode usar isso para forçar a coluna para texto.

A única outra maneira que eu posso encontrar uma maneira de fazer isso é colocando um único apóstrofo na frente do + ie. '+ 1-8000. No entanto, quando importar o seu preso com isso como parte da cadeia.

A partir desta explicação do CSV, só posso deduzir que essa é uma das limitações do uso do formato CSV.

Eu sugiro, em vez disso, importar e exportar em Xml, em vez de CSV, se possível.

BinaryMisfit
fonte
1
Bom ponto com renomeando to.txt
pelms #
0

Clique com o botão direito do mouse na célula -> escolha 'Formatar célula' -> Selecione sob 'Categoria:' Texto.

Ou coloque "" os dados que você deseja que sejam exibidos como texto no arquivo CSV.

-JFV

JFV
fonte
Eu tentei isso e apenas muda o resultado para o texto. Os dados subjacentes ainda são avaliados como uma fórmula.
Dlux
Mesmo quando os dados de origem têm aspas duplas em torno dele no CSV (por exemplo: "+ 1-800-555-1234")?
244 JFV JFV
0

Se você tiver algum controle sobre como o CSV é criado, tente a solução proposta aqui:

Simon East
fonte
3
Eu percebo que você está tentando ajudar, mas copiar e colar respostas e "olhar aqui para a resposta" as respostas são geralmente desaprovadas. O último (esta resposta, por exemplo) não é realmente útil em si mesmo. Sinta-se à vontade para postar as mesmas informações, sim, mas, por favor, adapte-as a cada pergunta.
DMA57361
0

Use a TEXT()função.

=TEXT(B1,"+1-800-555-1234")
joe
fonte
Semelhante ao acima, a fórmula TEXT está formando o resultado de B1 como texto, não a string subjacente que ainda está sendo avaliada.
Dlux