Hai un elenco in Excel con campi come “Ragione sociale”, “Sito web” e “Telefono” e vuoi trasformarlo in un elenco verticale pronto per Word o InDesign, senza ricopiare a mano. In questa guida pratica trovi tre metodi affidabili (formula, Stampa unione, copia‑incolla) con pro, contro, varianti e trucchi d’impaginazione.
Panoramica del problema
Molti database o anagrafiche vengono raccolti in Excel come tabella a più colonne. Quando si passa all’impaginazione (schede, rubrica, crediti, elenco partner, etc.), spesso serve un elenco verticale in cui ogni record occupa un blocco di righe, ad esempio:
Ragione sociale
Sito web
Telefono
Ragione sociale
Sito web
Telefono
…
Qui sotto trovi tre approcci risolutivi, con una tabella di confronto e, a seguire, le istruzioni operative dettagliate e molti accorgimenti per gestire casi reali (zeri iniziali, celle vuote, numero variabile di colonne, collegamento con InDesign).
Soluzioni operative a confronto
Approccio | Passaggi essenziali | Punti di forza | Limiti / accorgimenti |
---|---|---|---|
1. Formula con funzioni dinamiche (Microsoft 365/Excel 2021+) | 1. Assicurarsi che l’area dati abbia intestazioni. 2. In una cella vuota (p. es. E1) inserire una delle formule: • =DROP(TOCOL(VSTACK(IF(SEQUENCE(,3),""),TRANSPOSE(A1:C1000)),,TRUE),1) • oppure =DROP(IFNA(TOCOL(HSTACK(A1:C1000,"")),""),-1) 3. La formula “spilla” un’unica colonna già pronta per il copia‑incolla in Word o InDesign. | • Automatica, aggiorna il risultato se il foglio cambia. • Non richiede passaggi in Word. | • Richiede versioni che supportino TOCOL, VSTACK, DROP, HSTACK. • Per non perdere lo zero iniziale dei telefoni: formattare la colonna Telefono come Testo prima di inserire i numeri oppure avvolgere il riferimento in TEXT(numero;"0##########") . |
2. Word “Stampa unione → Tipo: Directory” | 1. In Excel mettere titolo di colonna per ogni campo. 2. In Word: Lettere → Inizia stampa unione → Directory. 3. Selezionare la cartella Excel come origine dati. 4. Inserire i campi (Ragione sociale, Sito, Telefono) uno per riga nel documento principale. 5. Completare unione per generare la lista. | • Aggiornabile: basta rieseguire l’unione se il file Excel cambia. • Mantiene automaticamente zeri iniziali perché usa i valori così come sono nell’origine dati. | • Più passaggi rispetto alla formula. • Richiede familiarità con la Stampa unione di Word. |
3. Copia → Incolla in Word → Tabella → Converti in testo | 1. Copiare l’intera tabella da Excel. 2. Incollare in Word (mantieni formattazione tabella). 3. Tabella → Converti → Tabella in testo, delimitatore: Paragrafo. 4. Eventuale rifinitura manuale (interruzioni di paragrafo). | • Funziona con qualsiasi versione di Office. • Nessuna formula da imparare. | • Operazione manuale, non si aggiorna se Excel cambia. • Può perdere gli zeri iniziali dei telefoni: formattare come Testo in Excel prima di copiare. |
Approccio con formula (Microsoft 365/Excel 2021+)
Se hai Excel con funzioni dinamiche, questo è il metodo più rapido e “future‑proof”. L’idea è trasformare le colonne in una singola colonna testuale con eventuale riga vuota tra i record, pronta per il copia‑incolla in Word/InDesign.
Preparazione
- Assicurati che le colonne abbiano intestazioni (es. Ragione sociale, Sito web, Telefono).
- In Excel italiano spesso il separatore degli argomenti è
;
(punto e virgola). Se le formule qui sotto usano,
(virgola), adatta il separatore secondo le impostazioni locali. - Per i numeri di telefono con zeri iniziali, imposta la colonna come Testo prima di digitare i numeri oppure usa
TEXT/TESTO()
per il rendering.
Formula pronta all’uso (range classico A:C)
Versione “VSTACK + TRANSPOSE” (mantiene l’ordine riga per riga e inserisce una riga vuota tra i record):
=DROP(TOCOL(VSTACK(IF(SEQUENCE(,3),""),TRANSPOSE(A1:C1000)),,TRUE),1)
SEQUENCE(,3)
genera una riga di tre valori logici che, passati aIF(...,"")
, diventano tre celle vuote: la “riga bianca” tra i record.TRANSPOSE(A1:C1000)
ruota la tabella in 3 righe × N colonne.VSTACK(...)
impila la riga vuota sopra i dati trasposti.TOCOL(...,,TRUE)
appiattisce “per colonna”, producendo la sequenza Ragione sociale → Sito web → Telefono → (riga vuota) per ogni riga originale.DROP(...,1)
elimina la primissima riga vuota iniziale.
Versione “HSTACK” (più semplice da leggere). Se noti che l’output è raggruppato per colonna invece che per riga, aggiungi il 3° argomento di TOCOL
impostato a FALSE
:
=DROP(IFNA(TOCOL(HSTACK(A1:C1000,""),,FALSE),""),-1)
In Excel con separatore ;
:
=DROP(IFNA(TOCOL(HSTACK(A1:C1000;"");;FALSO);"");-1)
Formula con Excel Table (riferimenti strutturati)
Consigliato per tabelle che crescono nel tempo (Ctrl+T per convertire in Tabella; ipotizziamo il nome Aziende):
=LET(
dati; HSTACK(Aziende[Ragione sociale]; Aziende[Sito web]; Aziende[Telefono]; "");
DROP(IFNA(TOCOL(dati;;FALSO);"");-1)
)
Vantaggi: la formula si adatta automaticamente quando aggiungi o rimuovi righe alla tabella.
Preservare e formattare i numeri di telefono
Se la colonna Telefono è numerica, Excel tende a rimuovere gli zeri iniziali. Evita problemi così:
- Metodo 1 – colonna in formato Testo: imposta la colonna su “Testo” prima di inserire i numeri.
- Metodo 2 – formattazione in formula (array‑enabled):
=LET(
tel; IF(Aziende[Telefono]="","",TEXT(Aziende[Telefono],"0##########")),
dati; HSTACK(Aziende[Ragione sociale]; Aziende[Sito web]; tel; ""),
DROP(IFNA(TOCOL(dati;;FALSO);"");-1)
)
Adatta lo 0##########
al numero tipico di cifre dei tuoi dati.
Gestire celle vuote e riga bianca finale
- Se l’ultima cella dell’elenco risulta bianca, la versione con
DROP(...,-1)
elimina l’ultimo elemento indesiderato. - Se vuoi nessuna riga vuota fra un record e l’altro, rimuovi il
HSTACK(...,"")
(o la rigaIF(SEQUENCE...)
) eTOCOL(...,1, ...)
conignore=1
per ignorare eventuali blank.
Più o meno colonne? Nessun problema
Hai 4 colonne (es. aggiungi Indirizzo)? Estendi HSTACK
e la sequenza si adatta:
=LET(
dati; HSTACK(Aziende[Ragione sociale]; Aziende[Sito web]; Aziende[Telefono]; Aziende[Indirizzo]; ""),
DROP(IFNA(TOCOL(dati;;FALSO);"");-1)
)
Approccio con Word: Stampa unione (Tipo “Directory”)
Se preferisci restare in Word e mantenere un collegamento aggiornabile all’Excel, la Stampa unione di tipo Directory è ideale.
Passaggi dettagliati
- In Excel, metti una riga di intestazioni e salva il file (meglio se il range è una Tabella).
- In Word: Lettere → Inizia stampa unione → Directory.
- Seleziona destinatari → Usa elenco esistente e scegli il file Excel. Seleziona il foglio o la tabella corretta.
- Nella pagina vuota, inserisci i campi in righe separate: Ragione sociale [Invio], Sito web [Invio], Telefono [Invio], poi un ulteriore Invio per la riga bianca fra i record.
- Opzionale: applica Stili di paragrafo (“Nome”, “Sito”, “Telefono”) per controllare font, corpo, spaziature e per l’import in InDesign.
- Anteprima risultati per verificare l’impaginazione.
- Completamento unione → Modifica singoli documenti per generare il documento finale. Puoi salvare in DOCX o RTF e importare in InDesign con File → Inserisci.
Vantaggi e buone pratiche
- Aggiornabilità: se Excel cambia, riesegui l’unione e ottieni il nuovo elenco in pochi clic.
- Integrità dei dati: Word prende i valori così come sono, mantenendo zeri iniziali, formattazioni testo e caratteri speciali.
- Controllo tipografico: con stili ben definiti puoi importare in InDesign applicando un mapping 1:1 degli stili.
Accorgimenti
- Non serve “Prossimo record” tra i paragrafi: il tipo Directory concatena automaticamente tutti i record.
- Se noti spaziature strane, imposta “Spazio prima/dopo” negli stili di paragrafo anziché aggiungere righe vuote extra.
Approccio manuale: Copia → Incolla → Converti tabella in testo
Funziona su qualsiasi versione di Office e va benissimo per un lavoro una tantum.
Procedura
- In Excel, formattare come Testo la colonna Telefono se devi preservare gli zeri iniziali.
- Se desideri una riga bianca tra i record, aggiungi in Excel una colonna vuota a destra dei campi e lasciala vuota.
- Seleziona la tabella in Excel e copia.
- In Word, incolla mantenendo la formattazione tabella (o “Mantieni solo testo” se preferisci gestire gli stili manualmente).
- Con la tabella selezionata: Layout (Strumenti tabella) → Converti in testo, delimitatore: Paragrafo.
- Fai una rapida rifinitura con Trova/Sostituisci se serve (es. doppi spazi, linee extra).
Consigli
- Se non hai aggiunto in Excel la colonna vuota, puoi inserire la riga bianca dopo ogni gruppo con Trova/Sostituisci avanzato, ma la soluzione della colonna vuota è più rapida e sicura.
- Questo metodo è non aggiornabile: se Excel cambia, ripeti la procedura.
Raccomandazioni pratiche
- Hai Microsoft 365? Usa la formula dinamica: è la via più rapida e mantiene l’elenco sincronizzato; ricordati di impostare la colonna Telefono come testo o usare
TEXT/TESTO()
per preservare gli zeri iniziali. - Vuoi restare collegato all’Excel? Scegli la Stampa unione – Directory di Word: ideale per revisioni frequenti o per impaginare direttamente in InDesign via RTF/IDML.
- Niente funzioni dinamiche o lavoro una tantum? Il metodo Copia → Incolla → Converti in testo è sufficiente.
Suggerimenti extra
- Personalizzare il formato del telefono: in Excel usa un formato personalizzato tipo
"0"
seguito dagli zeri necessari (es."0000000000"
) oppure scrivi i numeri preceduti da apostrofo ('01234…
). - Importazione in InDesign: se esporti il testo in
.txt
o.docx
puoi poi usare File → Inserisci in InDesign; se hai usato Mail Merge puoi esportare direttamente in RTF e importare mantenendo gli stili. - Verifica celle vuote: se la formula produce una cella bianca finale, la versione con
DROP(...,-1)
la elimina. - Separatore degli argomenti: se Excel usa
;
al posto di,
, converti i separatori. Le funzioni più recenti possono talvolta restare in inglese (TOCOL
,VSTACK
, ecc.). - Dataset grandi: preferisci una Tabella Excel (Ctrl+T) e formule con
LET
per leggibilità. Con decine di migliaia di righe, valuta di generare l’elenco con Stampa unione per non appesantire il foglio. - Ordine e filtri: applica filtri/ordinamenti in Excel prima di generare l’elenco: la formula e la Stampa unione rifletteranno esattamente l’ordine correntemente visibile.
- Caratteri speciali: se il sito web deve essere mostrato senza “http(s)://”, prepara una colonna calcolata in Excel (es. sostituzione tramite
SUBSTITUTE/SOSTITUISCI()
).
Varianti utili e modelli pronti
Formula “smart” con rilevamento automatico delle colonne
Se le colonne da concatenare non sono sempre le stesse, puoi selezionarle esplicitamente con HSTACK
e CHOOSECOLS
(quando disponibile) oppure con riferimenti strutturati. Esempio con 3 colonne note e riga bianca:
=LET(
campi; HSTACK(Aziende[Ragione sociale]; Aziende[Sito web]; Aziende[Telefono]; ""),
risultato; TOCOL(campi;;FALSO),
DROP(IFNA(risultato;"");-1)
)
Versione senza riga bianca tra record
=LET(
campi; HSTACK(Aziende[Ragione sociale]; Aziende[Sito web]; Aziende[Telefono]),
TOCOL(campi;1;FALSO) <!-- ignore=1 per ignorare eventuali blank -->
)
Versione con etichette prima del valore
Per produrre blocchi tipo “Ragione sociale: ABC Srl” su una riga, crea colonne testuali in Excel o costruisci le etichette in formula:
=LET(
rs; "Ragione sociale: "&Aziende[Ragione sociale],
sw; "Sito web: "&Aziende[Sito web],
tl; "Telefono: "&TEXT(Aziende[Telefono],"0##########"),
campi; HSTACK(rs; sw; tl; ""),
DROP(IFNA(TOCOL(campi;;FALSO);"");-1)
)
Alternative se non hai le funzioni dinamiche
Metodo con colonne di supporto (compatibile con Excel 2010/2013/2016)
- In un foglio vuoto, nella cella A1, imposta il numero di colonne k (es. 3).
- Nella colonna di output (es. E:E), usa queste formule e copia in basso quanto serve:
- Riga di partenza (E1):
=INDICE($A$1:$C$1000;QUOZIENTE(RIGHE($1:1)-1;k)+1;RESTO(RIGHE($1:1)-1;k)+1)
- Ogni k+1 righe inserisci una riga vuota (puoi farlo con una formula
SE(RESTO(RIGHE(...);k+1)=0;"";...)
o con una colonna di servizio).
- Riga di partenza (E1):
- Copia i valori e incolla in Word.
È più macchinoso, ma funziona ovunque.
Power Query (Ottimo per flussi ripetuti)
- Dati → Da tabella/Intervallo → carica la tabella.
- Trasforma → Trasponi, poi Unisci colonne con delimitatore Paragrafo (
#(lf)
). - Trasponi di nuovo se serve e infine Connetti & Carica come tabella a colonna singola.
Power Query crea un passaggio riutilizzabile: aggiorni la query e l’elenco si rigenera.
InDesign: dal testo alla pagina, senza sorprese
- Importa il DOCX/RTF o TXT con File → Inserisci e spunta “Mostra opzioni importazione” per mappare gli stili Word → stili InDesign.
- Se hai creato blocchi con riga vuota, puoi controllare la spaziatura via stile (Spazio dopo) ed eliminare le righe vuote con un GREP (es. trova
\r\r+
→ sostituisci con\r\r
o con una sola). - Per elenchi lunghi, usa Composizione in catena tra cornici testo e stili nidificati (prima riga Nome, seconda Sito, terza Telefono).
FAQ e troubleshooting
Vedo i dati raggruppati per colonna, non per riga.
Usa la versione di TOCOL
con il 3° argomento impostato a FALSE
(FALSO
in italiano): TOCOL(...;;FALSO)
.
Compaiono errori #N/D o #VALORE! nell’elenco.
Avvolgi con IFNA/SE.ERRORE
come nei modelli: IFNA(TOCOL(...), "")
.
Ho più/meno di tre colonne.
Amplia o riduci HSTACK
(e la riga vuota finale ""
se la desideri). Con tabelle strutturate usa direttamente i nomi di colonna.
Perdo gli zeri iniziali del telefono.
Imposta la colonna Telefono come Testo prima dell’inserimento, oppure usa TEXT/TESTO()
nel calcolo dell’elenco.
La mia versione di Excel non conosce TOCOL/VSTACK/HSTACK/DROP.
Usa il metodo Stampa unione – Directory o le Alternative con colonne di supporto/Power Query.
Come rimuovere eventuali record vuoti all’inizio o alla fine?
Usa DROP(...,1)
o DROP(...,-1)
come mostrato nelle formule.
Checklist finale (per andare dritto al punto)
- Decidi il flusso: Formula (rapido e dinamico), Stampa unione (aggiornabile e tipografico), Copia‑incolla (una tantum).
- Prepara i dati: intestazioni chiare, colonna Telefono in Testo o formattata con
TEXT/TESTO
. - Genera l’elenco: usa la formula indicata o imposta la Directory in Word.
- Impagina: applica stili, controlla spaziatura e gerarchia tipografica; in InDesign mappa gli stili di Word.
- Verifica: cerca righe vuote indesiderate, accenti e apostrofi, URL corretti.
Conclusione
Convertire una tabella Excel in un elenco verticale pronto per Word o InDesign è semplice e preciso se scegli l’approccio giusto per il tuo contesto: con funzioni dinamiche ottieni un elenco “vivo” e sempre allineato al foglio; con la Stampa unione – Directory mantieni il collegamento ed eviti problemi di formattazione; con il flusso Copia → Incolla → Converti risolvi in fretta quando serve un’operazione manuale. Seguendo i passaggi e i suggerimenti di questa guida, in pochi minuti passi da Excel alla pagina, senza perdite di tempo né di qualità tipografica.
Appendice: tavola riassuntiva (da tenere a portata di mano)
Scenario | Soluzione consigliata | Punto chiave |
---|---|---|
Microsoft 365, elenco aggiornabile | Formula con LET + HSTACK /TOCOL | Usa TOCOL(...;;FALSO) per l’ordine riga‑per‑riga; DROP(...,-1) per riga finale vuota. |
Impaginazione professionale (stili/stesure) | Word Stampa unione (Tipo Directory) | Riesegui l’unione quando Excel cambia; importa in InDesign con mapping degli stili. |
Una tantum, versione legacy | Copia → Incolla → Converti in testo | Aggiungi in Excel una colonna vuota per ottenere la riga bianca. |
Excel senza dinamiche ma processo ripetuto | Power Query | Crea una query “Trasponi → Unisci con LF → Trasponi” e aggiorna quando serve. |
Con questi metodi puoi passare in pochi minuti da una tabella Excel a un elenco verticale pronto per l’impaginazione, senza dover riscrivere manualmente i dati.