Perché Excel rimuove gli zeri iniziali durante la visualizzazione dei dati CSV?


9

Ho un file di testo CSV con il seguente contenuto:

"Col1","Col2"
"01",A
"2",B
"10", C

Quando lo apro con Excel, viene visualizzato come mostrato qui:

Si noti che Cell A2tenta di visualizzare "01" come numero senza uno "0" iniziale.

Quando formatto le righe da 2 a 4 come "Testo", cambia la visualizzazione in

... ma rimane ancora lo "0" iniziale.

C'è un modo per aprire un file CSV in Excel ed essere in grado di vedere tutti gli zeri iniziali nel file lanciando alcune opzioni? Non voglio dover digitare nuovamente '01 in ogni cella che dovrebbe avere uno zero iniziale. Inoltre, l'utilizzo di un apostrofo principale richiede che le modifiche vengano salvate in un formato XLS quando si desidera CSV. Il mio obiettivo è semplicemente usare Excel per visualizzare il contenuto effettivo del file come testo senza che Excel provi a farmi alcun favore di formattazione.


L'unico modo in cui l'ho capito è arduo, ma sembra funzionare. Copia e incolla su un nuovo foglio. Impostare l'intera area incollata sul formato "testo", quindi eliminarla e incollare nuovamente i valori. Bob è tua zia.

3
(Per i nostri utenti non britannici, "Bob's your aunty" è un idioma che si traduce liberamente in "e sei pronto".)
iglvzx

Robert non era mia zia. :-) Pensavo di aver avuto successo nel farlo prima, ma non ha funzionato. Provalo. Ciò che mi ha confuso è il motivo per cui la formattazione della cella come testo non comporta che il valore "02" sia diffuso con uno 0 iniziale a sinistra giustificato.
Chad,

1
se il csv è solo per Excel, puoi usare numeri espliciti come testo - ad es. se scrivi '01in Excel, verrà visualizzato 01senza virgolette singole.
Aprillion

Risposte:


6

Quando apri il CSV, avrai la possibilità di specificare il delimitatore e il tipo di dati per ogni colonna. La procedura guidata di importazione del testo prevede 3 passaggi. Nota che le mie schermate sono di Excel 2010, ma funzionerà esattamente allo stesso modo in Excel 2003.

Passaggio 1: selezionare delimitato (anziché larghezza fissa)

Passaggio 2: selezionare la virgola come delimitatore

Passaggio 3: selezionare ciascuna colonna e modificare il formato dei dati in "testo". (Vedrai la parola Testo visualizzata sopra ogni colonna come nella schermata qui sotto.)

inserisci qui la descrizione dell'immagine

Gli zeri iniziali non verranno più rimossi:

inserisci qui la descrizione dell'immagine

AGGIORNAMENTO : Se non si desidera navigare attraverso il processo per far cooperare Excel, è possibile utilizzare CSVEd , un editor progettato appositamente per la modifica di file di testo delimitati. Un buon editor di testo come Notepad ++ potrebbe anche funzionare, ma non sarai in grado di vedere i tuoi dati disposti in colonne.



1
Il mio problema era che il mio file aveva un'estensione csv e la finestra di dialogo Importa non compare mai. quando ho rinominato il file per avere un'estensione di testo, ero pronto e sapevo dove andare. ty.
Chad,

Ecco una complicazione: dopo averlo importato come descritto, desidero quindi la possibilità di modificare il file e salvarlo come CSV. Mi presenta una brutta finestra di dialogo contorta (dai, microsoft-progetta un modulo di dialogo personalizzato per questo invece di usare la funzionalità Windows di MessageBox!). Ho scelto l'opzione per "mantenerlo nello stesso formato". Quando lo faccio, il valore predefinito è un formato separato da tabulazione. Per assicurarsi che il file txt venga salvato con un separatore di virgola, è necessario modificare l'estensione del nome del file in "csv". È brutto di cosa? Dopo 10 versioni di Excel abbiamo questo?
Chad,

Ciao Velika, vedi l'aggiornamento in fondo alla mia risposta. Potrebbe essere meglio non usare Excel.
Jon Crowell,

Sì, stavo già cercando un editor CSV. Ho visto CSVEd. La mia impressione iniziale è che sembra un'interfaccia confusa e confusa. Penso che "Tabular Text Editor" abbia un aspetto migliore. Grazie per l'aiuto.
Chad,

13

Ho appena riscontrato questo problema. Se controlli la creazione del file CSV, puoi far apparire i dati come segue:

"Col1","Col2"
="01",A
="2",B
="10", C

Se aperto come Excel, manterrà lo 01.


Il mio Excel 2010 non conserva 01 anche con il tuo esempio
OneWorld

1

formatta la colonna in modo che mostri come vuoi (es. 00 per 2 cifre)
Questo ha il vantaggio che verrà salvata con quelle cifre (ma dovresti modificare la formattazione ogni volta che modifichi il CSV)


0

Per prima cosa copia tutti i dati / colonne e righe dal foglio Excel reale in un altro foglio Excel solo per essere al sicuro in modo da avere i dati effettivi con cui confrontare. passi,

  1. Copia tutti i valori nella colonna e incollali in un blocco note.
  2. Ora cambia il tipo di colonna in testo nel foglio di Excel (taglierà gli zeri precedenti / finali), non ti preoccupare.
  3. Vai a Blocco note e copia tutti i valori che hai incollato proprio ora.
  4. Vai al tuo foglio Excel e incolla i valori nella stessa colonna.

Se hai più di una colonna con 0 valori, ripeti la stessa cosa.

Giorni felici.


0

1) Incolla i miei numeri in una colonna di Excel (rimuoverà gli zeri iniziali)

2) Quindi fare clic con il tasto destro del mouse su "formatta celle" personalizzate su 0000 per un numero di 4 cifre, 00000 per numeri di 5 cifre. ecc ... (riporta quegli zeri)

3) Copia la colonna e incollala in un file .txt. (dovrebbe avere tutti gli zeri iniziali).

4) Copia il tuo elenco .txt.

5) Fai clic con il pulsante destro del mouse su qualsiasi colonna in Excel e formattala in testo.

6) Incolla i dati copiati dal .txt nella colonna di Excel (rimangono tutti gli zeri iniziali)

Delimita il desiderio del tuo cuore.


0

Se il danno è già stato fatto e hai i dati in Excel, puoi cambiare il formato del file usando l'opzione Formato numero personalizzato. Inserisci solo gli zeri per il numero di posti che desideri (l'immagine qui sotto farà sei cifre)

inserisci qui la descrizione dell'immagine

Ecco Macro che lo farebbe anche su tutto il foglio. Basta specificare il numero di cifre.

Sub whyNot()
Dim WS As Worksheet, fMat As String, p As Long

    '''''Custom Options
    Const NumberOfPlaces As Long = 3 '' change this to number of places you want
    Set WS = ActiveSheet 'or specify the sheet name with Sheets("Sheet1")


        For p = 1 To NumberOfPlaces
        fMat = fMat & "0"
        Next p

        WS.UsedRange.Cells.NumberFormat = fMat

End Sub
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.