Molti dati arrivano in un foglio di calcolo in una forma che non è quella che serve: nome e cognome nella stessa cella, codici articolo con prefissi da separare, indirizzi email da cui ricavare il dominio, elenchi con spazi e maiuscole sparse. Le funzioni di testo permettono di sistemare tutto questo con formule ripetibili, invece che a mano riga per riga. I nomi qui sono quelli dell'Excel italiano; tra parentesi gli equivalenti inglesi.
Estrarre parti di un testo
Le tre funzioni di base prendono un certo numero di caratteri da una posizione:
SINISTRA(testo; n)(LEFT): i primi n caratteri;DESTRA(testo; n)(RIGHT): gli ultimi n caratteri;STRINGA.ESTRAI(testo; inizio; n)(MID): n caratteri a partire dalla posizione indicata.
Con un codice a struttura fissa come «MI-2026-00457», dove le prime due lettere indicano la sede, =SINISTRA(A2; 2) restituisce «MI», =STRINGA.ESTRAI(A2; 4; 4) restituisce «2026» e =DESTRA(A2; 5) restituisce «00457».
Attenzione: il risultato è sempre testo. «2026» estratto così non è un numero e non verrà sommato né confrontato come tale. Per convertirlo usa VALORE() oppure moltiplica per 1: =STRINGA.ESTRAI(A2; 4; 4)*1.
Trovare la posizione di un carattere
Quando le parti non hanno lunghezza fissa serve sapere dove si trova il separatore:
TROVA(cosa; testo)(FIND) restituisce la posizione e distingue le maiuscole;RICERCA(cosa; testo)(SEARCH) fa lo stesso senza distinguerle e accetta i caratteri jolly.
Per ricavare il dominio da un indirizzo email in A2:
=STRINGA.ESTRAI(A2; TROVA("@"; A2)+1; LUNGHEZZA(A2))
TROVA individua la chiocciola, si parte dal carattere successivo e si chiede un numero di caratteri sufficiente a coprire il resto: LUNGHEZZA del testo intero basta sempre.
Per separare nome e cognome scritti come «Mario Rossi», con lo spazio come separatore:
Nome: =SINISTRA(A2; TROVA(" "; A2)-1)
Cognome: =STRINGA.ESTRAI(A2; TROVA(" "; A2)+1; LUNGHEZZA(A2))
Funziona finché c'è un solo spazio. Con «Maria Grazia De Luca» nessuna formula può sapere dove finisce il nome e inizia il cognome: in questi casi la soluzione corretta è chiedere i dati già separati alla fonte.
Le funzioni più recenti
Nelle versioni recenti di Excel esistono TESTO.PRIMA e TESTO.DOPO (TEXTBEFORE e TEXTAFTER), che fanno direttamente ciò che sopra richiede la combinazione di più funzioni: =TESTO.DOPO(A2; "@") restituisce il dominio. Google Sheets offre SPLIT, che divide un testo in più celle secondo un separatore. Se il file deve funzionare ovunque, le funzioni classiche restano la scelta più sicura.
Ripulire il testo
I dati copiati da altre applicazioni portano con sé sporcizia invisibile che rompe ricerche e confronti.
| Funzione | Cosa fa |
|---|---|
ANNULLA.SPAZI (TRIM) |
toglie gli spazi iniziali e finali e riduce gli spazi multipli a uno |
LIBERA (CLEAN) |
rimuove i caratteri di controllo non stampabili |
MAIUSC / MINUSC (UPPER / LOWER) |
tutto maiuscolo o tutto minuscolo |
MAIUSC.INIZ (PROPER) |
iniziale maiuscola per ogni parola |
SOSTITUISCI (SUBSTITUTE) |
sostituisce un testo con un altro |
Un caso frequente: ANNULLA.SPAZI non rimuove lo spazio non separabile (carattere 160) che arriva dalle pagine web. Si elimina così:
=ANNULLA.SPAZI(SOSTITUISCI(A2; CODICE.CARATT(160); " "))
MAIUSC.INIZ va usata con giudizio: trasforma «MCDONALD» in «Mcdonald» e «D'ANGELO» in «D'angelo». Per gli elenchi di nomi conviene controllare il risultato.
SOSTITUISCI è utilissima anche per normalizzare: eliminare i trattini da un numero di telefono, sostituire il punto con la virgola, togliere un prefisso. Con un quarto argomento facoltativo sostituisce solo l'occorrenza indicata.
Unire testi
L'operatore & unisce testi e valori: =B2&" "&C2 restituisce «Mario Rossi». Per numeri e date conviene usare la funzione TESTO, altrimenti apparirà il numero seriale:
="Scadenza: "&TESTO(D2; "gg/mm/aaaa")
Tieni presente che i codici di formato dipendono dalla lingua: in un Excel inglese il formato equivalente è "dd/mm/yyyy".
Per unire molti valori con un separatore, TESTO.UNISCI (TEXTJOIN) è più pratica:
=TESTO.UNISCI(", "; VERO; A2:A20)
Il secondo argomento, VERO, ignora le celle vuote. È il modo più rapido per ottenere un elenco di indirizzi separati da virgola da incollare in un'email.
Formula o strumento?
Per operazioni una tantum, a volte è più veloce uno strumento: in Excel, Dati, Testo in colonne divide una colonna secondo un separatore; il Riempimento rapido (Ctrl+E) riconosce uno schema dagli esempi che digiti e lo applica al resto della colonna. LibreOffice Calc ha un comando Testo in colonne nel menu Dati, e Google Sheets offre la divisione del testo in colonne nello stesso menu.
Le formule hanno però un vantaggio decisivo quando i dati vengono aggiornati periodicamente: incolli il nuovo estratto e il risultato si ricalcola. Nel mio lavoro, se una pulizia andrà ripetuta anche solo una seconda volta, la scrivo come formula.
In sintesi
- SINISTRA, DESTRA e STRINGA.ESTRAI estraggono parti di testo; il risultato è sempre testo.
- TROVA e RICERCA individuano i separatori quando le parti hanno lunghezza variabile.
- ANNULLA.SPAZI, LIBERA e SOSTITUISCI eliminano la sporcizia invisibile.
- Per unire valori usa
&con TESTO per date e numeri, oppure TESTO.UNISCI. - Per lavori ripetuti preferisci le formule agli strumenti una tantum.