
Devi unire più celle in Excel, ma uno dei valori è un codice di lunghezza variabile? Se il risultato deve contenere, per esempio, un codice di 8 caratteri con gli zeri davanti, puoi combinare RIPETI, LUNGHEZZA e l’operatore &.
Con il codice in B2, questa è la formula da cui partire:
=RIPETI("0";MAX(0;8-LUNGHEZZA(B2)))&B2
Il valore 1234 diventa 00001234. Gli zeri fanno parte del testo ottenuto e rimangono anche quando lo unisci alle altre celle.
Concatenare tre celle mantenendo gli zeri iniziali
Immagina di avere un prefisso in colonna A, il codice in colonna B e una sigla in colonna C. Vuoi ottenere un identificativo come CLI-00001234-IT.
| A — Prefisso | B — Codice | C — Sigla | D — Risultato |
|---|---|---|---|
| CLI | 7 | IT | CLI-00000007-IT |
| CLI | 1234 | IT | CLI-00001234-IT |
| CLI | 12345678 | IT | CLI-12345678-IT |
Inserisci questa formula in D2, poi copiala verso il basso:
=A2&"-"&RIPETI("0";MAX(0;8-LUNGHEZZA(B2)))&B2&"-"&C2
I trattini sono separatori: puoi sostituirli con uno spazio oppure eliminarli. Per unire tutto senza separatori, usa:
=A2&RIPETI("0";MAX(0;8-LUNGHEZZA(B2)))&B2&C2
Come funzionano RIPETI e LUNGHEZZA nella formula
Prendiamo il codice 1234 e scomponiamo il calcolo:
LUNGHEZZA(B2)conta i caratteri del codice: in questo caso sono 4.8-LUNGHEZZA(B2)calcola quanti zeri mancano: 8 − 4 = 4.MAX(0;...)impedisce che il numero di ripetizioni sia negativo.RIPETI("0";4)produce il testo0000.&B2aggiunge il codice originale: il risultato è00001234.
Se sai con certezza che tutti i codici hanno al massimo 8 caratteri, puoi usare anche la versione più breve:
=RIPETI("0";8-LUNGHEZZA(B2))&B2
La versione con MAX è più robusta quando la lunghezza dei dati può variare oltre il limite previsto.
Scegliere il numero di caratteri da una cella
Per passare da 8 a 10 caratteri puoi cambiare il numero nella formula. Se vuoi gestire questa scelta senza modificarla ogni volta, scrivi la lunghezza desiderata in F1, per esempio 8, e usa:
=A2&"-"&RIPETI("0";MAX(0;$F$1-LUNGHEZZA(B2)))&B2&"-"&C2
I simboli $ mantengono fisso il riferimento a F1 quando copi la formula verso il basso. In F1 inserisci un numero intero positivo.
E se il codice supera gli 8 caratteri?
La formula con MAX conserva il codice completo: 123456789 rimane 123456789. Quindi ottieni almeno 8 caratteri, senza cancellare parti del codice.
Se il sistema di destinazione accetta esattamente 8 caratteri, è meglio segnalare i codici troppo lunghi:
=SE(LUNGHEZZA(B2)>8;"CONTROLLARE CODICE";A2&"-"&RIPETI("0";8-LUNGHEZZA(B2))&B2&"-"&C2)
Evita di usare automaticamente DESTRA(...;8) per risolvere il problema: conserverebbe solo gli ultimi 8 caratteri, con il rischio di trasformare un codice in un altro.
Codici come testo, lettere e celle vuote
RIPETI e LUNGHEZZA sono utili anche quando il codice è memorizzato come testo. Per esempio, AB12 diventa 0000AB12. In questo caso parliamo di caratteri, non soltanto di cifre.
La formula conserva gli zeri già presenti nel valore e aggiunge solo quelli mancanti. Attenzione agli spazi accidentali: anche uno spazio viene contato da LUNGHEZZA.
Se B2 è vuota, la formula di base genera otto zeri. Per lasciare vuoto tutto il risultato quando manca il codice, usa:
=SE(B2="";"";A2&"-"&RIPETI("0";MAX(0;8-LUNGHEZZA(B2)))&B2&"-"&C2)
Per identificativi con più di 15 cifre, imposta il formato Testo prima di inserirli o importali come testo. Excel non conserva tutte le cifre di un numero oltre questa precisione; una formula non può ricostruire quelle già perse.
L’alternativa con TESTO per i codici numerici
Se B2 contiene un codice numerico intero non negativo, puoi ottenere lo stesso risultato con una formula più compatta:
=A2&"-"&TESTO(B2;"00000000")&"-"&C2
Gli otto zeri tra virgolette richiedono almeno otto cifre. Anche TESTO lascia interi i numeri più lunghi. Per codici con lettere o identificativi da conservare esattamente come testo, scegli RIPETI e LUNGHEZZA.
Perché non basta il formato personalizzato della cella? Applicare 00000000 a B2 cambia l’aspetto del numero, ma non il valore sottostante. Concatenando direttamente B2, gli zeri aggiunti soltanto dalla formattazione non vengono mantenuti. Con queste formule, invece, gli zeri entrano nel testo finale.
Un esercizio da provare
Inserisci ORD in A2, 56 in B2 e IT in C2. In D2 costruisci un identificativo con il codice portato a 6 caratteri, separando i valori con un trattino.
Il risultato atteso è ORD-000056-IT. Prova prima da solo, poi apri la soluzione.
Mostra la soluzione
=A2&"-"&RIPETI("0";MAX(0;6-LUNGHEZZA(B2)))&B2&"-"&C2Il codice ha 2 caratteri: RIPETI aggiunge i 4 zeri mancanti.
Per ripassare come unire i contenuti delle celle, leggi la guida su come concatenare in Excel. Per allenarti ancora, visita la raccolta di esercizi Excel.


