24 Apr 2024

Un classico intramontabile di Excel: lo strumento “Testo in colonne”

Un classico intramontabile di Excel: lo strumento “Testo in colonne”

Microsoft Excel è da tempo uno dei software più utilizzati per la gestione e l’analisi dei dati. Tra le sue numerose funzionalità vi è uno strumento essenziale per la gestione dei dati e la loro organizzazione in fogli di calcolo: “Testo in Colonne“. In questo articolo esploreremo in dettaglio questo strumento, esaminando casi d’uso comuni e più insoliti, come ad esempio quelli relativi alla conversione di dati con formati linguistici diversi.

 

Cos’è lo strumento Testo in colonne

Trovi lo strumento “Testo in Colonne” nel gruppo Strumenti dati della scheda Dati. Esso ti consente di distribuire in colonne separate i dati contenuti tutti assieme in una singola cella o in una colonna di un elenco. Questa funzione è particolarmente utile quando si lavora con dati importati da fonti esterne o quando si desidera organizzare le informazioni in modo più strutturato, non solo per produrre una migliore visualizzazione ma soprattutto per poter compiere analisi più dettagliate.

Il caso più frequente è quello di dati separati in base a un delimitatore specifico (come uno spazio, una virgola o un carattere di tabulazione), tuttavia i dati potrebbero anche presentarsi in una codifica a larghezza fissa: in entrambi i casi Excel riuscirà a portare a termine il suo compito con successo.

Testo delimitato o a larghezza fissa?

In un testo delimitato i valori sono separati da caratteri specifici come virgole, punti e virgole o spazi; i classici file .CSV (Comma Separated Values) sono un esempio evidente di tale casistica. Al contrario, in un testo a larghezza fissa i valori sono organizzati in colonne di larghezza uniforme (ottenuta aggiungendo un opportuno numero di spazi vuoti), senza la presenza di delimitatori. Un testo delimitato occupa quindi meno memoria, però i dati non dovranno mai contenere il carattere utilizzato come delimitatore altrimenti quest’ultimo verrebbe interpretato come tale e non come parte delle informazioni. Per questo motivo in Italia il separatore standard non è la virgola perché questa figura come separatore dei decimali e spesso è contenuta negli indirizzi tra via e civico; per lo stesso motivo anche il carattere di punto e virgola viene evitato quando i dati possono contenere testo libero (es: il campo “Note per il corriere” dove un acquirente online potrebbe scrivere qualsiasi cosa).

Un classico intramontabile di Excel: lo strumento Testo in colonne e l'opzione testo_delimitato
La soluzione quindi è utilizzare un separatore sufficientemente “strano” (es: il pipe “|“, il “§“,…) oppure annullare definitivamente il rischio codificando i dati a larghezza fissa perché qui, non esistendo delimitatori, tutti i caratteri sono consentiti (è la posizione a stabilire quando si passa all’informazione successiva). Lo svantaggio, oltre alla maggiore occupazione di memoria per via di tutti quei caratteri di spazio sprecati, risiede nel fatto che i dati hanno necessariamente una dimensione massima prestabilita e quindi informazioni in origine troppo lunghe saranno state sicuramente troncate. È facile trovare tracciati con questa codifica nei flussi (non XML) da/verso la Pubblica Amministrazione e in tutti quei casi in cui i dati provengono da tabelle di database in cui i campi hanno già un formato testuale a larghezza fissa (es: CHAR) piuttosto che variabile (es: VARCHAR2).

Un classico intramontabile di Excel: lo strumento Testo in colonne e l'opzione testo_larghezza_fissa

Il wizard di conversione

Una volta selezionate le celle e lanciato il comando si aprirà la finestra “Conversione guidata testo in colonne“: nel primo step dovrai scegliere il tipo di codifica dei dati (Excel tenterà di capirlo da sé, ma attenzione, perché non sempre riuscirà nell’intento).

Un classico intramontabile di Excel: lo strumento Testo in colonne e l'opzione step1_delimitato

Un classico intramontabile di Excel: lo strumento Testo in colonne e l'opzione step1_larghezza_fissa
Il secondo step varia a seconda della scelta che hai fatto al precedente. In caso di testo delimitato dovrai scegliere il carattere da considerare come separatore: se non è tra quelli in elenco potrai specificarlo manualmente nella casella Altro. Puoi decidere di ignorare separatori consecutivi: spesso non è una buona idea, perché se un dato è assente è corretto che produca una cella vuota nella colonna in cui va rappresentato, tuttavia potrebbe essere utile quando vuoi separare parole (l’utente potrebbe aver inserito per errore più di uno spazio tra una e l’altra) oppure quando si vogliono riempire le colonne senza lasciare celle vuote intermedie (es: gli ultimi 3 dati di ogni riga contengono eventuali recapiti telefonici e vuoi fare in modo che sia valorizzata la prima di queste 3 colonne anche se è stato inserito un solo telefono in seconda posizione). Infine puoi definire come Qualificatore di testo le doppie virgolette, gli apostrofi o nessun carattere: usa una delle prime 2 scelte se nel testo quei caratteri esistono per delimitare le informazioni testuali e non vanno quindi considerati come dati veri e propri.
Un classico intramontabile di Excel: lo strumento Testo in colonne e l'opzione step2_delimitato
Al contrario del caso di testo delimitato, per dividere un testo a larghezza fissa occorre disporre di precise istruzioni (il cosiddetto tracciato record) su come interpretare i dati: una volta ottenute si tratterà solamente di replicare i tagli sull’anteprima mostrata da Excel. In alto il righello mostra la posizione orizzontale dei caratteri: clicca per creare un nuovo taglio, fai doppio clic su uno esistente per rimuoverlo o cambiagli posto trascinandolo. L’immagine sottostante mostra alcuni tagli tra cui quelli per isolare un importo con 2 cifre decimali che si sa essere compreso tra la posizione 116 e la 123. Al termine dell’impostazione dei punti di taglio dovrai ottenere una suddivisione che includa colonne da conservare ed eventualmente colonne da scartare.
Un classico intramontabile di Excel: lo strumento Testo in colonne e l'opzione step2_ larghezza_fissa
Il terzo e ultimo step è comune ad entrambi i tipi di testo ed è facoltativo, ma è sempre buona norma utilizzarlo per imporre il tipo di dato di ogni colonna, soprattutto in quei casi in cui Excel deciderebbe diversamente (es: un CAP verrebbe convertito in numero, mentre specificare da subito che si tratta di Testo ti eviterà successive operazioni). Da qui puoi decidere di saltare l’importazione delle colonne che non ti interessano e decidere da quale cella i dati verranno visualizzati. La cosa più importante in questa finestra è data dal pulsante Avanzate e dal menu a tendina accanto al formato Data: da qui puoi comunicare ad Excel il formato testuale con cui interpretare le date e i numeri letti! Ciò significa che valorizzando opportunamente queste opzioni puoi pervenire ai dati finali corretti senza dover ricorrere a successive elaborazioni testuali in colonne temporanee di appoggio (ad es. con Stringa.Estrai(), Sostituisci(),…).
Un classico intramontabile di Excel: lo strumento Testo in colonne_step3
Ma ti dirò di più: lo strumento “Testo in colonne” è usato spessissimo anche quando non ci sono né separatori né tagli da effettuare, solo per convertire valori interpretati erroneamente come testo (perché in un formato non compatibile con le impostazioni di lingua o le preferenze regionali) nelle date o nei numeri corretti! Se ti ritrovi spesso ad effettuare queste conversioni (es: di numeri in formato USA, con separatori di migliaia e decimali scambiati) potresti anche pensare di creare una macro registrando il comando Testo in colonne e modificando poi il codice sostituendo il parametro Destination:=Range(“A1”) in Destination:=Selection.Cells(1,1) così che la macro possa funzionare in futuro su qualsiasi sia la selezione esistente.

E se i dati sono in un file a parte?

Lo strumento “Testo in colonne” prevede che i dati siano già contenuti in una cella o in un elenco, tuttavia la stessa finestra (chiamata ora “Importazione guidata testo“) apparirà anche se provi ad aprire in Excel un file di testo qualsiasi (Excel procederà in autonomia senza chiederti nulla solamente se il file avrà estensione .CSV e se il delimitatore è uguale al separatore di elenco salvato nelle impostazioni geografiche di Windows – per l’Italia è il punto e virgola). In aggiunta, potrai specificare il set di caratteri (generalmente 1252: Europa occidentale Windows oppure 65001: Unicode (UTF-8)), decidere se ignorare le prime righe e se i dati includono una prima riga con le intestazioni delle colonne.

Se invece vuoi mantenere la connessione al file testuale e fare in modo che Excel possa aggiornare i dati importati a valle di successive modifiche ai dati di origine, l’ideale è procedere tramite Power Query (trovi tutti i comandi in Dati|Recupera e trasforma dati). Volessi per qualche motivo (?) continuare ad utilizzare la procedura guidata descritta, potresti farlo da Recupera dati|Procedure guidate legacy|Da testo (legacy) ma dovresti prima abilitarla da File|Opzioni|Dati|Mostra le importazioni guidate di dati legacy. In questo caso avresti accesso alle Proprietà della connessione dall’omonimo comando in Dati|Query e connessioni.
Un classico intramontabile di Excel: lo strumento Testo in colonne l'opzione import_legacy

Difetti e alternative

Converrai come questo strumento sia facile da usare, veloce e abbastanza intuitivo, riuscendo a gestire una varietà di casistiche differenti, tuttavia mostra diversi limiti in caso di situazioni complesse. Potresti ad esempio avere dati mal strutturati, come numeri telefonici con formati non uniformi nel modo di rappresentare il prefisso. Analogamente, dati che necessitano di operazioni preliminari di pulizia, a causa della presenza di delimitatori non sempre uguali o di delimitatori costituiti da più caratteri (ad esempio virgola + spazio come separatore tra gli indirizzi di in una mailing list).

In questi casi, per evitare di scrivere formule anche complesse per gestire le varie casistiche, ti consiglio di provare ad utilizzare lo strumento Dati|Strumenti dati|Anteprima suggerimenti, anche se anche lui non potrebbe esserti di aiuto nel classico caso di un elenco di nomi e cognomi separati da spazio in presenza di doppi nomi e/o cognomi (dovrai revisionare manualmente i risultati per decidere se una parola è parte di un nome o di un cognome, e talvolta potrebbe essere sia l’una che l’altra!).

In queste casistiche il mio consiglio rimane sempre quello di utilizzare le potenti funzionalità di Power Query, che ad esempio permette di dividere il testo anche ogni n caratteri, in direzioni diverse, al passaggio tra caratteri maiuscoli e minuscoli, tra cifra numerica e alfabetica (o viceversa) e addirittura di distribuire i dati in righe piuttosto che in colonne.

Per completezza ti segnalo la recente introduzione in Excel 365 di nuove funzioni generanti matrici dinamiche, tra cui Dividi.Testo() che emula lo strumento Testo in colonne consentendo operazioni più avanzate e personalizzate, rendendo possibile trattare scenari che richiederebbero altrimenti soluzioni più complesse. Considera però che queste nuove funzioni potrebbero non essere disponibili per tutti gli utenti (dipendono dalla versione specifica di Excel utilizzata) e inoltre potrebbero richiedere una curva di apprendimento leggermente maggiore rispetto alle altre.

Conclusioni

Lo strumento “Testo in Colonne” di Microsoft Excel rimane un’opzione fondamentale per la manipolazione e l’organizzazione dei dati, offrendo un’ampia gamma di possibilità di suddivisione del testo e/o conversione di quanto da questo rappresentato.

Con la sua semplicità d’uso e la sua utilità in una varietà di scenari, è uno strumento che ogni utente di Excel dovrebbe saper sfruttare per ottimizzare le proprie attività e ottenere risultati migliori nelle analisi di dati anche complessi.

Che tu sia un principiante o un esperto, è sempre utile esplorare nuovi modi per ottimizzare il proprio flusso di lavoro e migliorare l’efficienza. Per un supporto più esaustivo e guidato puoi seguire il nostro corso Microsoft Excel Expert oppure richiedere un percorso formativo personalizzato: contattaci per maggiori informazioni!

Giuseppe Zufus, DOCENTE IT / ORACLE SQL EXPERT
Articolo di Giuseppe Zufus
DOCENTE IT / ORACLE SQL EXPERT
Attratto sin da ragazzo dall'informatica e dai potenziali utilizzi creativi e non convenzionali della programmazione, inizia nel 1990 (ancora liceale!) una collaborazione con una allora nota rivista di settore pubblicando articoli e programmi scritti in linguaggio assembler. Nel tempo si specializza in vari settori del campo informatico, cercando il più possibile di condividere la propria esperienza ed il relativo entusiasmo mediante attività di docenza, dal project management con Microsoft Project alla manipolazione ed analisi dei dati con SQL, PL/SQL, Excel e Power BI. Tutti gli articoli di Giuseppe Zufus »
Se ti è piaciuto questo articolo e vuoi rimanere aggiornato su novità e promo attive, iscriviti alla nostra newsletter!
Valutazione di Google
4.9
Basato su 146 recensioni
js_loader