Formula di Excel: dividi il testo con delimitatore -

Formula generica

=TRIM(MID(SUBSTITUTE(A1,delim,REPT(" ",LEN(A1))),(N-1)*LEN(A1)+1,LEN(A1)))

Sommario

Per dividere il testo con un delimitatore arbitrario (virgola, spazio, barra verticale, ecc.) È possibile utilizzare una formula basata sulle funzioni TRIM, MID, SOSTITUISCI, RIPETI e LUNGHEZZA. Nell'esempio mostrato, la formula in C5 è:

=TRIM(MID(SUBSTITUTE($B5,"|",REPT(" ",LEN($B5))),(C$4-1)*LEN($B5)+1,LEN($B5)))

Nota: i riferimenti a B5 e C4 sono riferimenti misti per consentire di copiare la formula su e giù.

Spiegazione

L'essenza di questa formula è sostituire un dato delimitatore con un gran numero di spazi usando SOSTITUISCI e RIPETI, quindi usa la funzione MID per estrarre il testo relativo all '"ennesima occorrenza" e la funzione TRIM per eliminare lo spazio extra.

In questo frammento, il delimitatore (delim) viene sostituito con un numero di spazi uguale alla lunghezza totale della stringa:

SUBSTITUTE(A1,delim,REPT(" ",LEN(A1)))

Quindi la formula utilizza la funzione MID per estrarre l'ennesima sottostringa. Il punto di partenza viene calcolato con il codice sottostante, dove N rappresenta "nth":

(N-1)*LEN(A1)+1

Il totale dei caratteri estratti è uguale alla lunghezza della stringa di testo completo. La funzione TRIM quindi rimuove tutti gli spazi extra e restituisce solo l'ennesima stringa.

Estrai solo un'istanza

Sebbene l'esempio sia impostato per estrarre 5 sottostringhe dal testo nella colonna B, puoi facilmente estrarre solo 1 istanza. Ad esempio, per estrarre solo il 4 ° elemento (città), potresti utilizzare:

=TRIM(MID(SUBSTITUTE(B5,"|",REPT(" ",LEN(B5))),(4-1)*LEN(B5)+1,LEN(B5)))

Funzione Text to Columns

Per le conversioni manuali e una tantum, Excel ha una funzionalità incorporata chiamata "Testo in colonne" che può dividere il testo in celle con un delimitatore a tua scelta. Troverai questa funzionalità nella scheda Dati della barra multifunzione nella sezione Strumenti dati.

Articoli interessanti...