www.valterborsato.it

TESTO.SUCCESSIVO e TESTO.PRECEDENTE restituiscono un testo prima o dopo un determinato carattere o delimitatore

Le nuove Funzioni TESTO.SUCCESSIVO e TESTO.PRECEDENTE restituiscono il testo che si trova prima o dopo un determinato carattere, stringa o delimitatore.

Con gli aggiornamenti Excel 365 del luglio 2022, vengono proposte due nuove Funzioni TESTO.SUCCESSIVO e TESTO.PRECEDENTE utili per dividere delle stringhe di testo caratterizzate dalla presenza di specifici caratteri delimitatori.
Per effettuare queste operazioni con le precedenti versioni di Excel era necessario utilizzare una serie di Funzioni basate sulla individuazione del carattere delimitatore (TROVA e RICERCA) e la successiva separazione dei testi con le Funzioni  SINISTRA, DESTRA e STRINGA.ESTRAI.

Nuove Funzioni di Excel - TESTO.SUCCESSIVO e TESTO.PRECEDENTE restituiscono un testo prima o dopo un determinato carattere o delimitatore

NOTA: le due nuove Funzioni TESTO.SUCCESSIVO e TESTO.PRECEDENTE nella versioni Excel Inside del gennaio 2022,  erano state temporaneamente chiamate TESTO.DOPO e TESTO.PRIMA

Come dividere un testo in Excel con le Funzioni TESTO.SUCCESSIVO e TESTO.PRECEDENTE

La sintassi della Funzione TESTO.SUCCESSIVO

La Funzione TESTO.SUCCESSIVO restituisce il testo che si trova dopo un definito delimitatore o stringa.
in data giugno 2023 gli argomenti della sintassi che Excel fornisce risultano in parte descritti in italiano e in parte in inglese
La sintassi della Funzione è la seguente:
=TESTO.SUCCESSIVO(testo;delimitatore;[instance_num];[match_mode];[match_end];[if_not_found])
Nella quale:
testo
è la stringa o il riferimento di cella sulla quale effettuare la ricerca.
delimitatore, è il carattere o la stringa da ricercare e successivamente alla quale si vuole estrarre un testo.
[instance_num] (argomento facoltativo) l'istanza altro non è che la richiesta della posizione (1, 2, 3...) del delimitatore dopo il quale estrarre il testo. Il valore predefinito è 1. Un eventuale numero negativo avvia la ricerca dalla fine del testo originale.
[match_mode] (argomento facoltativo) permette di distinguere tra l'eventuale maiuscole o minuscole del delimitatore. Per impostazione predefinita è impostato il valore 0 che effettua un distinguo tra maiuscole e minuscole. Il valore 1 non fa distinzione.
[match_end] (argomento facoltativo) tratta la fine del testo come delimitatore. Per impostazione predefinita è disabilitato "0".
Lo 0 (impostazione predefinita) definisce che la funzione ricercherà il delimitatore esattamente come viene specificato nella funzione.
In pratica, se sia match.end sia il parametro instance_num sono entrambi impostati con il valore 1,  se il delimitatore non viene trovato Excel restituirà una stringa vuota anzichè restituire il codice di errore #N/D.
[if_not_found] (argomento facoltativo) permette di definire il valore da restituire qualora il delimitatore non fosse presente nel testo sorgente. Se l'argomento non viene impostato, viene restituito il codice di errore #N/D.

Sintassi e argomenti della Funzione TESTO.SUCCESSIVO

La sintassi della Funzione TESTO.PRECEDENTE

La Funzione TESTO.PRECEDENTE Restituisce il testo che si trova dopo un definito delimitatore o stringa.
in data giugno 2023 gli argomenti della sintassi che Excel fornisce risultano in parte descritti in italiano e in parte in inglese
La sintassi della Funzione è la seguente:
=TESTO.PRECEDENTE(testo;delimitatore;[instance_num];[match_mode];[match_end];[if_not_found])
Nella quale:
testo
è la stringa o il riferimento di cella sulla quale effettuare la ricerca.
delimitatore, è il carattere o la stringa da ricercare e precedentemente alla quale si vuole estrarre un testo.
[instance_num] (argomento facoltativo) l'istanza altro non è che la richiesta della posizione (1, 2, 3...) del delimitatore dopo il quale estrarre il testo. Il valore predefinito è 1. Un eventuale numero negativo avvia la ricerca dalla fine del testo originale.
[match_mode] (argomento facoltativo) permette di distinguere tra l'eventuale maiuscole o minuscole del delimitatore. Per impostazione predefinita è impostato il valore 0 che effettua un distinguo tra maiuscole e minuscole. Il valore 1 non fa distinzione.
[match_end] (argomento facoltativo) tratta la fine del testo come delimitatore. Per impostazione predefinita è disabilitato "0".
0 (impostazione predefinita) questa impostazione definisce che la funzione corrisponderà al delimitatore esattamente come viene specificato nella formula.
In pratica, se sia match.end sia il parametro instance_num sono entrambi impostati impostati come 1,  se il delimitatore non viene trovato, la funzione restituirà il testo originale.
[if_not_found] (argomento facoltativo) permette di definire il valore da restituire qualora il delimitatore non fosse presente nel testo sorgente. Se l'argomento non viene impostato, viene restituito il codice di errore #N/D.

Sintassi e argomenti della Funzione TESTO.PRECEDENTE

Esempi di applicazione delle Funzioni TESTO.PRECEDENTE e TESTO.SUCCESSIVO

Primo esempio. Estrarre un testo prima e dopo uno specifico carattere

Si vuole dividere su due colonne il nome e cognome delle persone (vedi successiva immagine).
Questa operazione è risolvibile con le "storiche" Funzioni TROVA e RICERCA.
Tali funzioni restituiscono la posizione del carattere barra spaziatrice all'interno della stringa. 
Una volta definita la posizione della barra spaziatrice si utilizzano le Funzioni SINISTRA e STRINGA.ESTRAI per estrarre i caratteri precedenti e successivi rispetto la barra spaziatrice.
Il calcolo ora risulta molto più semplice con le nuove Funzione TESTO.PRECEDENTE e TESTO.SUCCESSIVO
TESTO.PRECEDENTE(B2;" ") viene direttamente restituito il valore che precede la barra spaziatrice.
Viceversa, con la Funzione TESTO.SUCCESSIVO(B4;" ") viene restituito il valore successivo alla barra spaziatrice.

Primo esempio. Estrarre un testo prima e dopo uno specifico carattere

OSSERVAZIONE. L'eventuale presenza di nomi o cognomi composti renderebbe molto complessa la divisone del testo. Tale problema potrebbe essere risolvibile utilizzando l'argomento facoltativo [instance_num] che permetterebbe di usare quale punto di separazione il secondo il terzo o i successivi delimitatori (barra spaziatrice) presente nella stringa.
Nell'ambito di una colonna che prevede la presenza di nomi e cognomi (a volte composti) non è possibile individuare un criterio logico, nel quale la funzione di Excel a volte debba valutare il primo, il secondo o i successivi delimitatori.

Secondo esempio. Se il delimitatore non viene trovato, restituire il testo originale

Questa impostazione è utile se si vuole ottenere il testo originale presente in una cella nel caso in cui la Funzione TESTO.SUCCESSIVO non riesca a individuare il delimitatore. Vedi immagine sottostante.

nella colonna B (dell'esempio proposto) la descrizione della taglia non sempre è associata alla parola "Taglia", come risultato si vuole ottenere nella colonna C la restituzione delle sole voci; small, Medium, large etc.

La Funzione inserita nella cella C2 è la seguente =TESTO.SUCCESSIVO(B2;": ";-1;;1)

Nella quale B2 rappresenta la cella contenente il testo da separare;
": " la stringa da cercare nella cella B2;
instance_num è impostato come -1 per cercare la stringa di origine da destra a sinistra;
match_end
 è impostato come 1 per trattare la fine della stringa come delimitatore.
Attenzione per passare a compilare l'ultimo argomento viene saltato match mode inserendo due volte ";"

Secondo esempio. Se il delimitatore non viene trovato, restituire il testo originale

[Valter Borsato: pubblicato 24/01/2023, revisione: 11/08/2023]

Indice Generale Argomenti: EXCEL