Excel 2007 sta convertendo i campi CSV in formule


7

Ho un problema con un file CSV che ha numeri di telefono memorizzati nel loro formato internazionalizzato (+ 1-800-555-1234). Quando si apre questo CSV in Excel 2007, converte i dati in una formula e visualizza il risultato (= 1-800-555-1234, risultante in -2588).

Come faccio a dire a Excel di gestire questo campo come una stringa?

Ecco un esempio: salvalo in un file .csv e apri in Excel per riprodurre il problema:

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

Risposte:


11

Apri un foglio di lavoro vuoto, quindi seleziona "Dati & gt; Ottieni dati esterni & gt; Da testo '(layout di menu di Excel 2007). Quindi quando apri il tuo file CSV otterrai la 'Procedura guidata per l'importazione di testo' che ti permetterà di specificare colonne particolari come Testo invece del predefinito 'Generale'.
Potrebbe essere necessario specificare la codifica di origine file appropriata (ad esempio Unicode (UTF-8)) nella prima pagina della procedura guidata, per mantenere i caratteri "+" iniziali.

Inoltre, come dice Diago, se si rinomina il file da .csv a .txt e si apre in Excel, si otterrà l'Importazione guidata testo senza passare attraverso "Dati & gt; Ottieni dati esterni ... '.


Questo ha fatto il trucco, e ho dovuto specificare UTF-8 per mantenere "+ 1-" all'inizio del campo. Grazie!
dlux

+1 per UTF-8. Stavo pensando che la codifica potrebbe avere un effetto, ma poi l'ho graffiata come una cattiva idea.
BinaryMisfit

4

Quando si salva il file, utilizzare un'estensione TXT anziché CSV. Ciò imporrà l'Importazione guidata testo per l'avvio e sarà possibile utilizzarlo per forzare la colonna al testo.

L'unico altro modo in cui posso trovare un modo per farlo è mettendo un singolo apostrofo davanti al + i.e .. '+ 1-8000. Tuttavia quando importate il vostro bloccato con questo come parte della stringa.

A partire dal Questo spiegazione di CSV Posso solo dedurre che questa è una delle limitazioni con l'utilizzo del formato CSV.

Suggerirei piuttosto di importare ed esportare in Xml piuttosto che in CSV se possibile.


1
Buon punto con la rinomina to.txt
pelms

0

Fai clic con il tasto destro del mouse sulla cella - & gt; scegli "Formatta cella" - & gt; Seleziona sotto "Categoria:" Testo.

Oppure metti "" intorno ai dati che desideri vengano visualizzati come testo nel file CSV.

-JFV


L'ho provato e cambia semplicemente il risultato in testo. I dati sottostanti sono ancora valutati come una formula.
dlux

Anche quando i dati sorgente hanno virgolette attorno al CSV (es .: "+ 1-800-555-1234")?
JFV

0

Se hai il controllo su come viene creato il CSV, prova la soluzione proposta qui:


3
Mi rendo conto che stai cercando di aiutarti, ma copia-incolla le risposte e "guarda qui per la risposta" le risposte sono generalmente disapprovate. Quest'ultimo (questa risposta, ad esempio) non è in realtà di per sé utile. Sentiti libero di pubblicare le stesse informazioni, sì, ma per favore personalizzalo su ogni domanda.
DMA57361

0

Utilizzare il TEXT() funzione.

=TEXT(B1,"+1-800-555-1234")

Come sopra, la formula TEXT sta formattando il risultato di B1 come testo, non la stringa sottostante che è ancora in fase di valutazione.
dlux
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.