perché una colonna di Excel formattata come numero perde il suo zero iniziale quando la colonna è formattata come testo?


8

Devo esportare un foglio di calcolo in CSV. Una delle colonne è un codice postale con codici postali della costa orientale che hanno uno zero iniziale. Quando riformatto quella colonna come testo sperando di preservare lo zero iniziale all'esportazione, immediatamente la colonna passa da destra giustificata a sinistra giustificata e lo zero iniziale scompare! Mi aspetterei esattamente il contrario, che potrebbe perdere lo zero se riformattato da testo a numero.

Come posso conservare quello zero iniziale?

Risposte:


6

Teoria

Excel ha due nozioni diverse e non correlate quando si tratta di dati nelle celle: valore grezzo / memorizzato e valore di visualizzazione .

Il valore "grezzo" o memorizzato sono i dati effettivi in ​​una rappresentazione non formattata. Il tipo di dati non elaborati può essere numero, testo, data, ecc.

Il valore "display" indica come vengono formattati i dati. Quando si utilizza la GUI di Excel, viene visualizzato il valore di visualizzazione, non il valore non elaborato.

Il problema è che quando esporti in CSV, sta prendendo il valore grezzo ed esportandolo, non il valore visualizzato! Pertanto, anche se si formattano i dati per contenere zero iniziali utilizzando la finestra di dialogo Formatta celle, se il valore sottostante non contiene uno zero iniziale, anche l'esportazione non lo sarà.

È necessario formattare tutti i dati come testo (nel foglio di calcolo di Excel), quindi aggiungere uno zero iniziale quando appropriato. Questo eliminerà il valore di visualizzazione fingendoti di pensare di avere uno zero iniziale nel valore grezzo (non lo fai).

Soluzione

Lo zero non esiste come parte del contenuto della cella, solo la formattazione, quindi quando si formatta come testo non lo si ottiene. Potresti provare a usare una formula nella colonna successiva, ad esempio se hai codici postali a 5 cifre (?) Con voci in A2 verso il basso inserisci questa formula in B2

=TEXT(A2,"00000")

copia la formula nella colonna

Il risultato è un valore di testo (possibilmente con zero iniziale effettivo). Una volta che hai questo valore in un'altra colonna, puoi copiare ed eseguire "Incolla valori" sulla colonna originale per sostituire tutti i dati sottostanti con i dati con spaziatura zero. Quindi eliminare la colonna aggiuntiva.


Ciao Barry, risposta eccellente, ho aggiunto un po 'di "teoria" di fondo piuttosto che pubblicare un'altra risposta ... sentiti libero di modificare come desiderato, questa è una risposta collaborativa :-)
allquixotic

@allquixotic, nessun problema, belle aggiunte
Barry Houdini,

2

Hai numeri nelle celle, non testo. Un valore numerico di 02010 è lo stesso del numero 2010. La formattazione come testo fornisce la normale rappresentazione testuale del 2010, non 02010.

Per conservare gli zeri iniziali, inserisci i dati come stringa, non come numero. Ad esempio, immettere = "02010" come valore.

Per visualizzare semplicemente zeri iniziali, supponendo che tutti i numeri abbiano la stessa lunghezza (diciamo, cinque cifre), utilizzare un formato personalizzato. Selezionare 0 dall'elenco indirizzi personalizzato, quindi modificarlo in 00000. Tutti i numeri verranno visualizzati come cinque cifre, con zeri iniziali. Tuttavia, se si salvano questi dati in un file CSV, gli zeri iniziali non saranno presenti. L'unico modo per conservarli è inserire i dati come stringhe.


Riceviamo questi dati da una varietà di terze parti. Sembra che siamo sfortunati, poiché siamo in balia delle persone che inseriscono i dati e non possono costringerli a farlo in modo intelligente. Sono rimasto sorpreso dal fatto che convertirlo in testo ha eliminato lo zero. L'IMO è un effetto collaterale, non una semplice rappresentazione in forma di stringa del valore visualizzato, mentre mi aspetterei che una cella formattata come numero rimuova uno zero iniziale.
mrblint,

0

È passato molto tempo da quando ho usato Excel, ma ho sempre usato come prefisso lo zero iniziale con un 'ed Excel lo avrebbe trattato come una stringa invece di cercare di interpretarlo come un numero.

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.