Aggiungi zero / 0 iniziali ai valori di Excel esistenti a una certa lunghezza


299

Ci sono molte, molte domande e risposte di qualità su SO riguardo a come evitare che gli zero iniziali vengano rimossi durante l'importazione o l'esportazione da Excel. Tuttavia, ho già un foglio di calcolo che contiene valori che sono stati troncati come numeri quando, in realtà, avrebbero dovuto essere gestiti come stringhe. Devo ripulire i dati e aggiungere nuovamente gli zeri iniziali.

C'è un campo che dovrebbe essere composto da quattro caratteri con zeri iniziali che riempiono la stringa di quattro caratteri. Però:

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

Domanda: esiste una formula Excel per reimpostare questi 0 su questi valori in modo che siano tutti e quattro i caratteri?

Nota: questo è simile al vecchio problema del codice postale in cui i codici postali del New England-area ottengono il loro zero iniziale e devi aggiungerli di nuovo.


Il periodo dovrebbe essere lì "3829."?
Josh Lee,

No, ma questa è la posizione corretta per un "." personaggio nella frase secondo la mia fedele copia di Strunk & White. Rimosso per chiarezza.
Segna il

7
Lo accetterei tranne per il fatto che si trovava in un blocco di codice, in cui tendo a prendere le cose in modo più letterale. (Inoltre, Excel memorizza ogni numero come float, quindi avrebbe potuto essere un decimale.)
Josh Lee

4
@josh upvote per l'ortografia corretta "accetta questo tranne quello".
Michiel van der Blonk,

Risposte:


506
=TEXT(A1,"0000")

Tuttavia, la funzione TESTO è in grado di fare anche altre cose fantasiose come la formattazione della data.


4
OH MIO DIO! Perfetto! Impari qualcosa di nuovo ogni singolo giorno. Ho anche più libri Excel con le orecchie di cane e non mi sono mai imbattuto in questo: lo userò ogni volta che avrò modificato i dati del codice postale basato su Excel in futuro.
Segna il

1
Funziona bene con i numeri decimali ... ma che dire dell'esadecimale? Non riesco a trovare un modo per far funzionare i primi 0 ...
Shadow

10
@shadow Il numero esadecimale per Excel è una stringa, non un numero. Così gestire la cosa come una stringa: =RIGHT("0000" + A1, 4).
GSerg,

8
@shadow, DEC2HEX accetta un argomento di posti. Quindi =DEC2HEX(HEX2DEC(A1),4)funziona bene per riempire i numeri esadecimali.
Raz Wilson,

9
@mcs Non hanno modificato la sintassi. La tua versione di Excel viene utilizzata; come separatore di parametri, che prende dalle impostazioni della lingua di Windows.
GSerg,

78

Il modo più efficiente (meno invadente) di farlo è attraverso la formattazione personalizzata.

  1. Evidenzia la colonna / matrice che vuoi modellare.
  2. Fai clic su ctrl+ 1o Formato -> Formatta celle.
  3. Nella scheda Numero, selezionare Personalizzato.
  4. Impostare la formattazione personalizzata su 000 #. (zero zero zero #)

Si noti che ciò non modifica effettivamente il valore della cella. Visualizza solo gli zeri iniziali nel foglio di lavoro.


8
Funziona alla grande se non è necessario mantenere gli zero iniziali oltre la cella originale ma non funzionerà se le stringhe devono essere utilizzate altrove. Farebbe visualizzare le celle come 0004, 01032, 0284 ma se si provasse a combinare le stringhe in una cella separata mostrerebbe, ad esempio, 4-1032-284 invece del desiderato 0004-01032-0284
Ashton Sheets

@AshtonSheets sì, come ho notato nella risposta mostra solo gli zeri iniziali, non fa nulla per il valore reale. Tuttavia, ci sono state situazioni in cui l'ho usato invece che =text()per la sua convenienza e la mancanza di formula coinvolta.
Mosè,

7
Per riferimento, questo dovrebbe essere 0000, no 000#. Altrimenti non funziona per 0.
PearsonArtPhoto

2
Per quelli con il mio problema sopra, la risposta era sostituire # (hash) con 0 (zero). # Non ti dà alcun carattere quando non c'è valore ma lo 0 ti dà uno zero quando non c'è valore! Ha senso e funziona alla grande: $ 0,0, "M"
Andrew,

1
Inoltre non ha funzionato per me usando 000 # ma ha funzionato quando ho appena specificato il formato personalizzato come 0000 per un numero di quattro cifre, 00000 per cinque, 000000 per sei ecc. Ovviamente questo è utile solo per numeri di formato più brevi
Hilary

16

Ho colpito questa pagina cercando di riempire i valori esadecimali quando mi sono reso conto che DEC2HEX()fornisce quella stessa funzione gratuitamente .

Devi solo aggiungere un secondo parametro. Ad esempio, cercando di trasformarsi 12in 0C
DEC2HEX(12,2)=> 0C
DEC2HEX(12,4)=> 000C
... e così via


9

Non sono sicuro che sia nuovo in Excel 2013, ma se fai clic con il pulsante destro del mouse sulla colonna e dici "Speciale", in realtà esiste un'opzione predefinita per Codice postale e Codice postale + 4. Magia.

inserisci qui la descrizione dell'immagine


6
Ottimo suggerimento e aggiornamento. È necessario assegnare a Microsoft un -1 per incoraggiare chiunque a archiviare SSN in un foglio di calcolo.
Segna A

8

So che è stata data una risposta qualche tempo fa, ma non è stata menzionata solo una semplice soluzione qui che sono sorpreso.

=RIGHT("0000" & A1, 4)

Ogni volta che ho bisogno di pad uso qualcosa come sopra. Personalmente la trovo la soluzione più semplice e più facile da leggere.


1

Se si utilizza la formattazione personalizzata e è necessario concatenare tali valori altrove, è possibile copiarli e incollare speciali -> Valori altrove nel foglio (o su un altro foglio), quindi concatenare tali valori.


1

Anche questo funzionerà bene

REPT(0,2-LEN(F2)&F2

dove 2 è il numero totale di cifre, per 0 ~ 9 -> verrà visualizzato il resto da 00 a 09 non verrà aggiunto nulla.

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.