La nuova funzione di matrice dinamica DIVIDI.TESTO
La Funzione DIVIDI.TESTO (TEXTSPLIT) di Excel suddivide una stringa di testo in base a un delimitatore specificato, distribuendo i risultati su più colonne e/o righe.
Il risultato dell'applicazione
di questa funzione è una matrice dinamica che si espande automaticamente
su più celle.
La funzione accetta fino a 6 argomenti, dei quali solo i primi due sono obbligatori.
Come spesso accade nelle nuove
funzione di Excel, gli argomenti
della funzione non sono stati
tradotti e vengono proposti in
lingua originale inglese.
Una particola applicazione della
funzione DIVIDI.TESTO, è la
possibilità di separare stringhe
di dati provenienti da file CSV,
dove i valori all'interno della
cella sono separati da virgole.
Normalmente, in Excel, per
gestire i dati CSV si utilizzano
strumenti come "Testo in
colonne" o Power Query.
Tuttavia, con DIVIDI.TESTO
,
è possibile ottenere un ottimo
risultato in modo molto semplice
e veloce.
Questa Funzione, come altre Funzioni sui testi, risulta particolarmente utile quando si devono organizzare dati provenente da esportazioni da altri programmi. In questi casi capita frequentemente che informazioni, che andrebbero suddivise su più colonne, vengono restituite all'interno di una unica cella.
Gli argomenti della Funzione DIVIDI.TESTO sono raffigurati nella sottostante immagine.
Sintassi della Funzione VIDI.TESTO
La Funzione DIVIDI.TESTO divide un testo in righe o colonne attraverso la definizione di uno o più delimitatori.
Nello specifico la sintassi della Funzione è la
seguente:
=DIVIDI.TESTO(text; col_delimiter;
[row_delimiter]; [ignore_empty]; [match_mode]; [pad_with])
Nella quale:
text:
il testo da dividere.
Può essere fornito come
riferimento ad una cella o ad
una stringa.
col_delimiter:
uno o più caratteri che
definiscono come dividere il
testo in colonne. Se omesso è
obbligatorio definire row_delimiter.
[row_delimiter]:
(argomento facoltativo) uno o
più caratteri che definiscono
come dividere il testo fra le
righe.
[ignore_empty]:
(argomento facoltativo) permette
di specificare se ignorare
valori vuoti.
[match_mode]:]:
(argomento facoltativo) permette la distinzione tra
maiuscole e minuscole del
carattere delimitatore.
- impostando 0 (impostazione
predefinita qualora non venisse
impostato l'argomento) viene fatta
distinzione fra maiuscolo e
minuscolo.
- impostando 1 non viene fatta
distinzione fra caratteri
maiuscoli o minuscoli.
[Pad_with]:
(argomento facoltativo) permette
di definire un valore da
utilizzare al posto di un
eventuale valore mancante.
L'impostazione predefinita è #N/D
Esempi di applicazione della Funzione DIVIDI.TESTO
Primo esempio. Dividere il contenuto di un cella su più colonne.
Per suddividere il contenuto di una specifica cella in più colonne, è necessario indicare come primo argomento (text) il riferimento alla cella che contiene la stringa originale, e come secondo argomento (col_delimiter) il delimitatore che determina il punto in cui deve avvenire la separazione.
Esempio, come illustrato nella sottostante immagine, si desidera separare il nome e il cognome inseriti all'interno di una singola cella.
Nella cella C2. successivamente trascinata nelle sottostanti celle. è
stata inserita la seguente Funzione =DIVIDI.TESTO(B2;" ")
Nota.
L'eventuale presenza di nomi o cognomi composti (nell'esempio Del Neri)
comporterà la restituzione disposta su tre colonne.
Anche possibili errori di imputazione possono comportare disposizioni su
più colonne.
Ad esempio, nel caso specifico, nella cella B6 il
nominativo Roberto Verdi è stato inserito con due spazi di separazione.
Per ovviare a questo errore, è possibile sfruttare il quarto argomento
della Funzione
[ignore_empty]:
che permette
di specificare se ignorare
valori vuoti.
Nello specifico la
Funzione (vedi immagine di cui sotto) dovrà essere impostata con la seguente
sintassi. =DIVIDI.TESTO(B2;" ";;VERO)
Notare che per bypassare il terzo argomento, anche in questo caso è stato inserito per due
volte lo stile separatore del punto e virgola.
Il quarto argomento è
stato impostato come VERO ossia ignora valori vuoti. In questo caso
viene pertanto ignorato che fra il nome e il cognome siano stati
inseriti due spazi vuoti.
Secondo esempio. Dividere il contenuto di una cella verticalmente su più righe
In questo secondo esempio si vuole suddividere la restituzione del
risultato su colonna e non sulle righe. Per ottenere questo risultato si deve saltare il
secondo argomento della funzione ma obbligatoriamente bisogna definire il terzo [row_delimiter].
Nel caso dell'esempio, nella cella D2 è stata inserita la seguente
Funzione =DIVIDI.TESTO(B2;;" ")
Notare che il secondo argomento è stato bypassato inserendo per due
volte lo stile separatore del punto e virgola.
Terzo esempio. Dividere un contenuto sulla base di delimitatori diversi
Concludiamo con una caso particolare, ovvero la necessità di suddividere
un testo separato da delimitatori diversi. Nel caso specifico
dell'esempio la stringa all'interno della cella B2 è separata con i
seguenti caratteri: ";" ":" "," sono inoltre presenti alcuni
caratteri vuoti.
Nel caso specifico la funzione dovrà essere implementata con dei
riferimenti di matrice (posti fra parentesi graffe) e al fine di evitare
di i caratteri vuoti presenti nella stringa di origine, la Funzione
DIVIDI.TESTO, è stata nidificata all'interno della Funzione ANNULLA.SPAZI
Nello specifico, la Funzione inserita nella cella D2 è la seguente: =ANNULLA.SPAZI(DIVIDI.TESTO(B2;{";"\","\":"}))
Tale impostazione permette la restituzione sulle successive colonne di
tutti i valori presenti nella stringa di origine, indipendentemente dal
separatore e dalla presenza di caratteri vuoti.
Quarto esempio. separare stringhe provenienti da file CSV
Un file CSV (Comma-Separated Values) è un formato semplice per memorizzare dati tabulari, in cui i valori di ogni riga sono separati da virgole.
Una stringa CSV, quindi, è una singola riga di testo che contiene più valori separati da virgole.
Ad esempio, una stringa come Verona,Rovereto,Trento, .... rappresenta tre
comuni diversi, ognuno separata da una virgola.
Tornando all'applicazione di Excel, la funzione DIVIDI.TESTO permette di gestire e manipolare questo tipo di stringhe.
Se in una cella, ad esempio B1, è presente una stringa CSV con diversi comuni, utilizzando la funzione DIVIDI.TESTO
impostando il terzo argomento "row.delimiter" è possibile trasformare
facilmente questa stringa in una lista verticale.
:: Osservazioni
Nelle versioni di Excel precedenti alla 365 la nuova funzione
DOVIDI.TESTO non è disponibile. In alternativa è possibile utilizzare la
procedura guidata Testo in colonne, presente nella scheda
Dati, gruppo
pulsanti Strumenti dati.
Utilizzando Formule e funzioni, è altresì possibile intervenire
applicando la funzione TROVA o RICERCA che permettono di individuare la
posizione di uno specifico carattere all'interno di una stringa.
Successivamente utilizzando le Funzioni SINISTRA e STRINGA.ESTRAI
sarà possibile suddividere il testo.
Le più recenti versioni di Excel mettono altresì a disposizione le due
Funzioni TESTO.PRECEDENTE e TESTO.SUCCESSIVO.
Per approfondimento si rimanda a:
Suddividere testi
[Valter Borsato: pubblicato 15/02/2024, revisione: 08/10/2024]
Indice Generale Argomenti: EXCEL