Funzione TEXTSPLIT in Excel: suddivisione di stringhe di testo in base al delimitatore

  • Condividi Questo
Michael Brown

L'esercitazione mostra come utilizzare la nuovissima funzione TEXTSPLIT per dividere le stringhe in Excel 365 in base a qualsiasi delimitatore specificato.

Ci possono essere diverse situazioni in cui è necessario dividere le celle in Excel. Nelle versioni precedenti, avevamo già a disposizione una serie di strumenti per svolgere questo compito, come Testo in colonne e Riempimento flash. Ora, abbiamo anche una funzione speciale per questo, TEXTSPLIT, che può separare una stringa in più celle su colonne e/o righe in base ai parametri specificati.

    Funzione TEXTSPLIT di Excel

    La funzione TEXTSPLIT di Excel divide le stringhe di testo in base a un determinato delimitatore tra colonne e/o righe. Il risultato è una matrice dinamica che si riversa automaticamente in più celle.

    La funzione accetta fino a 6 argomenti, di cui solo i primi due sono necessari.

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    testo (obbligatorio) - il testo da dividere. Può essere fornito come stringa o come riferimento di cella.

    delimitatore_col (obbligatorio) - uno o più caratteri che indicano dove dividere il testo tra le colonne. Se omesso, delimitatore_di_riga deve essere definito.

    delimitatore_di_riga (opzionale) - uno o più caratteri che indicano dove dividere il testo tra le righe.

    ignora_vuoto (opzionale) - specifica se ignorare o meno i valori vuoti:

    • FALSO (predefinito) - crea celle vuote per i delimitatori consecutivi senza un valore intermedio.
    • VERO - ignora i valori vuoti, cioè non crea celle vuote per due o più delimitatori consecutivi.

    modalità_di_riscontro (opzionale) - determina la sensibilità alle maiuscole per il delimitatore. Abilitato per impostazione predefinita.

    • 0 (valore predefinito) - sensibile alle maiuscole e alle minuscole
    • 1 - senza distinzione tra maiuscole e minuscole

    pad_with (facoltativo) - un valore da usare al posto dei valori mancanti negli array bidimensionali. L'impostazione predefinita è un errore #N/A.

    Ad esempio, per dividere una stringa di testo in A2 in più celle utilizzando una virgola e uno spazio come separatore, la formula è:

    =TEXTSPLIT(A2, ", ")

    Disponibilità dei testi

    La funzione TEXTSPLIT è disponibile solo in Excel per Microsoft 365 (Windows e Mac) e in Excel per il Web.

    Suggerimenti:

    • Nelle versioni di Excel in cui la funzione TEXTSPLIT non è disponibile (ad eccezione di Excel 365), è possibile utilizzare la procedura guidata Testo in colonne per dividere le celle.
    • Per eseguire l'operazione inversa, cioè per unire il contenuto di più celle in una sola utilizzando un determinato delimitatore, la funzione da utilizzare è TEXTJOIN.

    Formula di base TEXTSPLIT per dividere una cella in Excel

    Per cominciare, vediamo come utilizzare una formula TEXTSPLIT nella sua forma più semplice per dividere una stringa di testo in base a un particolare delimitatore.

    Dividere una cella orizzontalmente tra le colonne

    Per dividere il contenuto di una data cella in più colonne, fornire un riferimento alla cella contenente la stringa originale per la prima ( testo ) e il delimitatore che segna il punto in cui deve avvenire la suddivisione per il secondo argomento ( delimitatore_col ).

    Ad esempio, per separare orizzontalmente la stringa in A2 con una virgola, la formula è:

    =TEXTSPLIT(A2, ",")

    Per il delimitatore, si utilizza una virgola racchiusa tra doppi apici (",").

    Di conseguenza, ogni elemento separato da una virgola viene inserito in una colonna individuale:

    Dividere una cella verticalmente tra le righe

    Per dividere il testo su più righe, il terzo argomento ( delimitatore_di_riga ) è la posizione del delimitatore. Il secondo argomento ( delimitatore_col ) viene omesso in questo caso.

    Ad esempio, per separare i valori in A2 in diverse righe, la formula è:

    =TEXTSPLIT(A2, ,",")

    Si noti che, in entrambi i casi, la formula viene inserita solo in una cella (C2). Nelle celle vicine, i valori restituiti si riversano automaticamente. La matrice risultante (che viene chiamata intervallo di riversamento) è evidenziata con un bordo blu, a indicare che tutto ciò che si trova al suo interno è calcolato dalla formula nella cella in alto a sinistra.

    Dividere il testo in base a una sottostringa

    In molti casi, i valori della stringa di origine sono separati da una sequenza di caratteri, come ad esempio una virgola e uno spazio. Per gestire questo scenario, utilizzare una sottostringa come delimitatore.

    Per esempio, per separare il testo in A2 in più colonne con una virgola e uno spazio, usare la stringa ", " per delimitatore_col .

    =TEXTSPLIT(A2, ", ")

    Questa formula va in B2 e poi viene copiata in tutte le celle necessarie.

    Dividere la stringa in colonne e righe in una sola volta

    Per dividere una stringa di testo in righe e colonne alla volta, definire entrambi i delimitatori nella formula TEXTSPLIT.

    Ad esempio, per dividere la stringa di testo in A2 tra colonne e righe, si fornisce:

    • Il segno di uguale ("=") per delimitatore_col
    • Una virgola e uno spazio (", ") per delimitatore_di_riga

    La formula completa ha questa forma:

    =TEXTSPLIT(A2, "=", ", ")

    Il risultato è una matrice 2-D composta da 2 colonne e 3 righe:

    Separare le celle con più delimitatori

    Per gestire delimitatori multipli o incoerenti nella stringa di origine, utilizzare una costante di array come {"x", "y", "z"} per l'argomento delimitatore.

    Nella schermata sottostante, il testo in A2 è delimitato da virgole (",") e punti e virgola (";") con e senza spazi. Per dividere verticalmente la stringa in righe in base a tutte e 4 le varianti del delimitatore, la formula è:

    =TEXTSPLIT(A2, , {",",", ",";","; "})

    In alternativa, è possibile includere nell'array solo una virgola (",") e un punto e virgola (";") e poi rimuovere gli spazi extra con l'aiuto della funzione TRIM:

    =TRIM(TEXTSPLIT(A2, , {",",";"}))

    Dividere il testo ignorando i valori vuoti

    Se la stringa contiene due o più delimitatori consecutivi senza un valore tra di essi, si può scegliere se ignorare o meno tali valori vuoti. Questo comportamento è controllato dal quarto parametro ignora_vuoto che, per impostazione predefinita, è FALSE.

    Per impostazione predefinita, la funzione TEXTSPLIT non ignora i valori vuoti. Il comportamento predefinito funziona bene per i dati strutturati, come nell'esempio seguente.

    In questa tabella di esempio, i punteggi sono mancanti in alcune stringhe. La formula TEXTSPLIT con l'opzione ignora_vuoto L'argomento omesso o impostato su FALSE gestisce perfettamente questo caso, creando una cella vuota per ogni valore vuoto.

    =TEXTSPLIT(A2, ", ")

    Oppure

    =TEXTSPLIT(A2, ", ", FALSE)

    Di conseguenza, tutti i valori appaiono nelle colonne appropriate.

    Nel caso in cui le stringhe contengano dati omogenei, può essere ragionevole ignorare i valori vuoti. A tal fine, impostare il parametro ignora_vuoto a TRUE o a 1.

    Ad esempio, per dividere le stringhe sottostanti inserendo ogni abilità in una cella separata senza spazi vuoti, la formula è la seguente:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    In questo caso, i valori mancanti tra i delimitatori consecutivi vengono completamente ignorati:

    Suddivisione delle celle sensibile o non sensibile alle maiuscole e alle minuscole

    Per controllare la sensibilità alle maiuscole del delimitatore, utilizzare il quinto argomento, modalità_di_riscontro .

    Per impostazione predefinita, modalità_di_riscontro è impostato a 0, rendendo TEXTSPLIT sensibile alle maiuscole e alle minuscole .

    In questo esempio, i numeri sono separati dalle lettere "x" minuscole e "X" maiuscole.

    La formula con la sensibilità predefinita alle maiuscole accetta solo la "x" minuscola come delimitatore:

    =TEXTSPLIT(A2, " x ")

    Si prega di prestare attenzione al fatto che il delimitatore abbia uno spazio su entrambi i lati della lettera "x", per evitare spazi iniziali e finali nei risultati.

    Per disattivare la sensibilità alle maiuscole e alle minuscole, si fornisce 1 per modalità_di_riscontro per forzare la formula TEXTSPLIT a ignorare le lettere maiuscole:

    =TEXTSPLIT(A2, " x ", , ,1)

    Ora, tutte le stringhe sono divise correttamente da entrambi i delimitatori:

    Imbottire i valori mancanti in una matrice 2D

    L'ultimo argomento della funzione TEXTSPLIT, pad_with Quando una stringa di questo tipo è suddivisa in colonne e righe, per impostazione predefinita, Excel restituisce l'errore #N/A al posto dei valori mancanti per non alterare la struttura di un array bidimensionale.

    Nella stringa sottostante, non c'è nessun "=" ( delimitatore_col Per preservare l'integrità dell'array risultante, TEXTSPLIT visualizza #N/A accanto a "Score".

    Per rendere il risultato più semplice, è possibile sostituire l'errore #N/A con un valore a piacere: è sufficiente digitare il valore desiderato nel campo pad_with argomento.

    Nel nostro caso, potrebbe essere un trattino ("-"):

    =TEXTSPLIT(A2, "=", ", ", , ,"-")

    Oppure una stringa vuota (""):

    =TEXTSPLIT(A2, "=", ", ", , ,"")

    Dopo aver appreso gli usi pratici di ciascun argomento della funzione TEXTSPLIT, esaminiamo un paio di esempi avanzati che possono aiutarvi ad affrontare sfide non banali nei vostri fogli di calcolo Excel.

    Dividere le date in giorno, mese e anno

    Per dividere una data in singole unità, è necessario prima convertire la data in testo, perché la funzione TEXTSPLIT tratta stringhe di testo mentre le date di Excel sono numeri.

    Il modo più semplice per convertire un valore numerico in testo è utilizzare la funzione TESTO, assicurandosi di fornire un codice di formato appropriato per la data.

    Nel nostro caso, la formula è:

    =TEXT(A2, "m/d/yyyy")

    Il passo successivo consiste nell'annidare la funzione di cui sopra nel primo argomento di TEXTSPLIT e nell'inserire il delimitatore corrispondente nel secondo o nel terzo argomento, a seconda che si tratti di una divisione per colonne o per righe. In questo esempio, le unità di data sono delimitate con degli slash, quindi si usa "/" per il parametro delimitatore_col argomento:

    =TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")

    Dividere le celle e rimuovere alcuni caratteri

    Immaginate questo: avete diviso una lunga stringa in pezzi, ma l'array risultante contiene ancora alcuni caratteri indesiderati, come le parentesi nella schermata sottostante:

    =TEXTSPLIT(A2, " ", "; ")

    Per togliere le parentesi di apertura e di chiusura alla volta, si annidano due funzioni SUBSTITUTE una dentro l'altra (ognuna delle quali sostituisce una parentesi con una stringa vuota) e si usa la formula TEXTSPLIT per la funzione testo dell'argomento interno SUBSTITUTE:

    =SOSTITUIRE(SOSTITUIRE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")

    Suggerimento: se la matrice finale contiene troppi caratteri extra, è possibile eliminarli utilizzando uno dei metodi descritti in questo articolo: Come rimuovere i caratteri indesiderati in Excel.

    Dividere le stringhe saltando alcuni valori

    Supponiamo di voler separare le stringhe sottostanti in 4 colonne: Nome , Cognome , Punteggio , e Risultato Il problema è che alcune stringhe contengono il titolo "Mr." o "Ms.", per cui i risultati sono tutti sbagliati:

    La soluzione non è ovvia ma abbastanza semplice :)

    Oltre ai delimitatori esistenti, che sono uno spazio (" ") e una virgola e uno spazio (", "), si includono le stringhe "Mr. " e "Ms. " nell'oggetto delimitatore_col in modo che la funzione utilizzi i titoli stessi per separare il testo. Per ignorare i valori vuoti, si imposta il parametro ignora_vuoto a TRUE.

    =TEXTSPLIT(A2, {" ",", ", "Signor ", "Signora"}, ,TRUE)

    Ora i risultati sono assolutamente perfetti!

    Alternative di TEXTSPLIT

    Nelle versioni di Excel in cui la funzione TEXTSPLIT non è supportata, è possibile dividere le stringhe utilizzando diverse combinazioni della funzione CERCA / TROVA con SINISTRA, DESTRA e MEDIO. In particolare:

    • CERCA senza distinzione tra maiuscole e minuscole o TROVA senza distinzione tra maiuscole e minuscole determina la posizione del delimitatore all'interno di una stringa, e
    • Le funzioni LEFT, RIGHT e MID estraggono una sottostringa prima, dopo o tra due istanze del delimitatore.

    Nel nostro caso, per dividere i valori separati da una virgola e uno spazio , le formule sono le seguenti.

    Per estrarre il nome:

    =SINISTRA(A2, RICERCA(",", A2, 1) -1)

    Per tirare le somme:

    =METÀ(A2, RICERCA(",", A2) + 2, RICERCA(",", A2, RICERCA(",",A2)+1) - RICERCA(",", A2) - 2)

    Per ottenere il risultato:

    =DESTRA(A2, LEN(A2) - RICERCA(",", A2, RICERCA(",", A2) + 1)-1)

    Per una spiegazione dettagliata della logica delle formule, vedere Come dividere le stringhe per carattere o per maschera.

    Tenete presente che, a differenza della funzione TEXTSPLIT della matrice dinamica, queste formule seguono il tradizionale approccio a una formula e a una cella: si inserisce la formula nella prima cella e poi la si trascina lungo la colonna per copiarla nelle celle successive.

    La schermata seguente mostra i risultati:

    Ecco come dividere le celle in Excel 365 utilizzando TEXTSPLIT o soluzioni alternative nelle versioni precedenti. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Eserciziario da scaricare

    Funzione TEXTSPLIT per dividere le stringhe - esempi di formule (file .xlsx)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.