Incolli una formula in Excel, premi Invio e ti ritrovi un vistoso errore #VALORE! al posto del testo desiderato. Nove volte su dieci, il colpevole è un delimitatore mancante. La funzione ha cercato un carattere che non c'era e l'intera formula è andata in errore. Ecco come risolvere il problema in modo pulito.
Perché si verifica l'errore
Le funzioni di testo di Excel come TEXTBEFORE e TEXTAFTER funzionano cercando un delimitatore specifico in una stringa. Se quel delimitatore non esiste nella cella, restituiscono per impostazione predefinita un errore #VALORE!. Si tratta di un comportamento del tutto previsto, non di un bug.
Il problema è che i dati reali sono disordinati. Non tutte le righe del foglio di calcolo seguono lo stesso formato, e una singola virgola o trattino mancante può far fallire una formula applicata a centinaia di righe.
La soluzione rapida: SE.ERRORE
Il modo più veloce per gestire questo problema è racchiudere la formula in SE.ERRORE (IFERROR). Questa funzione intercetta qualsiasi errore restituito da una formula e lo sostituisce con un valore a tua scelta.
La sintassi di base è la seguente:
Suggerimento: Usa =IFERROR(TEXTBEFORE(A1, "-"), A1) per restituire il valore originale della cella quando il delimitatore non viene trovato. In questo modo i tuoi dati rimangono intatti invece di mostrare un errore.
Se preferisci restituire una stringa vuota, usa semplicemente =IFERROR(TEXTBEFORE(A1, "-"), ""). Questo mantiene il foglio di calcolo pulito se non hai bisogno di un valore di fallback.
Scenari di errore con TEXTBEFORE
La funzione TEXTBEFORE è potente ma rigida. Genera un errore #VALORE! in alcune situazioni specifiche che vale la pena conoscere.
- La stringa delimitatore non è presente nella cella.
- Specifichi un numero di istanza superiore al numero di volte in cui il delimitatore appare.
- La cella è vuota e stai cercando un delimitatore non vuoto.
- Passi un intervallo invece di una singola cella (nelle versioni precedenti di Excel).
SE.ERRORE gestisce tutti questi casi in un colpo solo, ed è per questo che è la soluzione formula preferita dalla maggior parte degli utenti.
Confronto del comportamento tra TEXTBEFORE e IFERROR
| Formula | Delimitatore trovato | Delimitatore mancante |
|---|---|---|
| Solo TEXTBEFORE | Restituisce il testo prima del delimitatore | Errore #VALORE! |
| IFERROR + TEXTBEFORE | Restituisce il testo prima del delimitatore | Restituisce il valore di fallback |
| TEXTBEFORE con argomento if_not_found | Restituisce il testo prima del delimitatore | Restituisce il fallback specificato (Excel 365) |
L'argomento di fallback integrato (Excel 365)
Se utilizzi Microsoft 365, TEXTBEFORE dispone di un argomento integrato per gestire i delimitatori mancanti. Il quarto argomento, if_not_found, ti permette di evitare del tutto SE.ERRORE.
Ad esempio: =TEXTBEFORE(A1, "-", 1, 0, 1, "nessuno") restituisce "nessuno" quando il trattino non viene trovato. È un approccio più pulito se puoi contare sull'ultima versione di Excel.
Attenzione: L'argomento if_not_found in TEXTBEFORE è disponibile solo in Excel 365 ed Excel 2024. Se condividi il file con qualcuno che usa una versione precedente, vedrà comunque l'errore. IFERROR è più sicuro per le cartelle di lavoro condivise.
Controllare i dati prima che arrivino in Excel
A volte la mossa più intelligente è correggere i dati prima ancora che raggiungano le formule. Se lavori con file esportati che hanno delimitatori incoerenti, una rapida pulizia evita molti grattacapi a valle.
Puoi usare un convertitore di delimitatori online per standardizzare i delimitatori del file prima dell'importazione. In questo modo ogni riga usa lo stesso separatore e le formule non devono compensare le incoerenze.
Errori comuni da evitare
- Usare IFERROR per nascondere errori reali che dovresti invece correggere nei dati.
- Dimenticare che TEXTBEFORE è sensibile alle maiuscole/minuscole per impostazione predefinita.
- Annidare troppe funzioni IFERROR invece di pulire i dati di origine.
- Dare per scontato che tutte le righe abbiano la stessa struttura quando non è così.
Punti chiave
- TEXTBEFORE e funzioni simili restituiscono #VALORE! quando il delimitatore non viene trovato nella cella.
- Racchiudere la formula con IFERROR è la soluzione più rapida e compatibile.
- Gli utenti di Excel 365 possono usare l'argomento integrato
if_not_foundin TEXTBEFORE per formule più pulite. - Pulire i delimitatori incoerenti prima dell'importazione riduce la necessità di gestione degli errori in partenza.
- IFERROR è migliore per le cartelle di lavoro condivise poiché funziona su tutte le versioni moderne di Excel.
Correggi i dati, non solo la formula
La gestione degli errori nelle formule è utile, ma è una toppa. Se i tuoi dati mancano costantemente dei delimitatori attesi dalle formule, è un segnale che sono i dati stessi a richiedere attenzione. Un po' di preparazione iniziale, che sia usare un convertitore di delimitatori o pulire il CSV prima dell'importazione, significa meno soluzioni alternative nelle formule in seguito.
Una volta che i dati sono coerenti, le formule restano semplici e i fogli di calcolo restano veloci. È un risultato migliore di una catena di IFERROR profondamente annidati che nessuno vorrà debuggare tra sei mesi.