Sommario
In questa esercitazione vedremo come utilizzare ISERROR con VLOOKUP in Excel per gestire in modo produttivo tutti i tipi di errori.
VLOOKUP è una delle funzioni di Excel più confuse e afflitte da molti problemi. Qualunque sia la tabella in esame, gli errori #N/A sono comuni, e di tanto in tanto compaiono anche #NOME e #VALORE. L'uso di VLOOKUP con ISERROR può aiutarvi a individuare tutti i possibili errori e a gestirli nel modo più appropriato alla vostra situazione.
Perché VLOOKUP dà un errore?
L'errore più frequente nelle formule VLOOKUP è #N/A che si verifica quando un valore di ricerca non viene trovato. Ciò può accadere per diversi motivi:
- Il valore di ricerca non esiste nell'array di ricerca.
- Il valore di ricerca è scritto male.
- Ci sono spazi iniziali o finali nel valore di ricerca o nella colonna di ricerca.
- La colonna di ricerca non è la colonna più a sinistra dell'array di tabelle.
Inoltre, è possibile imbattersi in un #VALORE! ad esempio quando il valore di ricerca contiene più di 255 caratteri. In caso di errore ortografico nel nome della funzione, viene visualizzato un messaggio di errore. #NOME? apparirà un errore.
Per un riferimento completo, consultate il nostro post precedente su Perché il VLOOKUP di Excel non funziona.
Formula IF ISERROR VLOOKUP per sostituire gli errori con testo personalizzato
Per mascherare tutti i possibili errori che possono essere generati da VLOOKUP, è possibile inserirlo all'interno della formula IF ISERROR in questo modo:
IF(ISERROR(VLOOKUP(...)), " testo_se_errore ", VLOOKUP(...))A titolo di esempio, riportiamo i nomi delle materie in cui gli studenti del gruppo A non hanno superato gli esami:
=VLOOKUP(A3, $D$3:$E$9, 2, FALSE)
Il risultato è un gruppo di errori #N/A, che potrebbe dare l'impressione che la formula sia corrotta.
In realtà, questi errori indicano solo che alcuni dei valori di ricerca (A3:A14) non si trovano nell'elenco di ricerca (D3:D9). Per trasmettere chiaramente questa idea, annidate la formula VLOOKUP nella costruzione IF ISERROR:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
In questo modo si individuano gli errori e si restituisce il messaggio di testo personalizzato:
Suggerimenti e note:
- Il vantaggio principale di questa formula è che funziona bene in tutte le versioni di Excel 2000 fino a Excel 365. Nelle versioni moderne sono disponibili alternative più semplici e compatte.
- La funzione ISERROR cattura assolutamente tutti gli errori Se si desidera visualizzare un messaggio personalizzato solo quando un valore di ricerca non viene trovato (errore #N/A), utilizzare il VLOOKUP IF ISNA (in tutte le versioni) o IFNA VLOOKUP (in Excel 2013 e versioni successive).
ISERROR VLOOKUP per restituire una cella vuota in caso di errore
Per avere una cella vuota quando si verifica un errore, fate in modo che la formula restituisca una stringa vuota ("") invece di un testo personalizzato:
IF(ISERROR(VLOOKUP(...)), "", VLOOKUP(...))Nel nostro caso, la formula assume questa forma:
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "", VLOOKUP(A3, $D$3:$E$9, 2, FALSE))
Il risultato è esattamente quello atteso: una cella vuota se il nome dello studente non viene trovato nella tabella di ricerca.
Suggerimento: in modo analogo, è possibile sostituire gli errori di VLOOKUP con zeri, trattini o qualsiasi altro carattere desiderato. È sufficiente utilizzare il carattere desiderato al posto di una stringa vuota.
IF ISERROR VLOOKUP Formula sì/no
In alcune situazioni, si può cercare qualcosa ma invece di estrarre le corrispondenze si vuole solo restituire Sì (o altro testo se il valore di ricerca viene trovato) e No (se il valore di ricerca non viene trovato). Per farlo, si può usare questa formula generica:
IF(ISERROR(VLOOKUP(...)), " testo_se_non_trovato ", " testo_se_trovato ")Nel nostro set di dati di esempio, supponiamo di voler sapere quali studenti non hanno superato un test e quali no. Per ottenere questo risultato, serviamo la già nota formula ISERROR VLOOKUP al test logico IF e le diciamo di dare come risultato "No" se il valore non viene trovato (ISERROR VLOOKUP restituisce VERO), "Sì" se viene trovato (ISERROR VLOOKUP restituisce FALSO):
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", "Sì")
Alternative a ISERROR VLOOKUP
La combinazione IF ISERROR è la tecnica più antica e collaudata per eseguire Vlookup senza errori in Excel. Nel corso del tempo, nuove funzioni si sono evolute, fornendo modi più semplici per eseguire lo stesso compito. Di seguito, discuteremo altre possibili soluzioni e quando è meglio applicarle.
IFERROR VLOOKUP
Disponibile in Excel 2007 e versioni successive
A partire dalla versione 2007, Excel dispone di una funzione speciale, denominata IFERROR, che consente di verificare la presenza di errori in una formula e di restituire un testo proprio (o di eseguire una formula alternativa) se viene rilevato un errore.
IFERROR(VLOOKUP(...), " testo_se_errore ")La formula reale è la seguente:
=IFERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "No")
A prima vista, sembra un analogo più breve della formula IF ISERROR VLOOKUP, ma c'è una differenza essenziale:
- IFERROR VLOOKUP presuppone che si voglia sempre il risultato di VLOOKUP se non è un errore.
- IF ISERROR VLOOKUP consente di specificare cosa restituire in caso di errore e cosa in caso di assenza di errore.
Per ulteriori dettagli, vedere Utilizzo di IFERROR con VLOOKUP in Excel.
SE È UNA VLOOKUP
Funziona in Excel 2000 e successivi
Quando si vuole intrappolare solo #N/A senza catturare altri errori, è utile la funzione ISNA. La sintassi è la stessa di IF ISERROR VLOOKUP:
IF(ISNA(VLOOKUP(...)), " testo_se_errore ", VLOOKUP(...))Ma in determinate circostanze, questa formula apparentemente identica può produrre risultati diversi:
=IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSO)), "No", VLOOKUP(A3, $D$3:$E$9, 2, FALSO))
Nell'immagine qui sotto, la cella A13 contiene molti spazi intermedi, a causa dei quali la lunghezza totale del valore di ricerca supera i 255 caratteri. Di conseguenza, la formula genera un errore #VALORE!, richiamando l'attenzione su quella cella e incoraggiando a indagarne le ragioni. ISERROR VLOOKUP restituirebbe "No" in questo caso, il che non farebbe altro che nascondere il problema e fornire un risultato assolutamente sbagliato.
Quando si usa:
Questa formula funziona perfettamente quando si desidera visualizzare del testo solo quando un valore di ricerca non viene trovato e non si desidera mascherare i problemi sottostanti alla formula VLOOKUP stessa, ad esempio quando il nome della funzione viene digitato in modo errato (#NOME?) o non viene specificato il percorso completo della cartella di lavoro di ricerca (#VALORE!).
Per ulteriori informazioni, consultare la funzione ISNA in Excel con esempi di formule.
IFNA VLOOKUP
Disponibile in Excel 2013 e versioni successive
È un sostituto moderno della combinazione IF ISNA che consente di gestire gli errori #N/A in modo più semplice.
IFNA(VLOOKUP(...), " testo_se_errore ")Ecco l'equivalente stenografico della formula IF ISNA VLOOKUP:
=IFNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "No")
Quando si usa:
È una soluzione ideale per intrappolare e gestire gli errori #N/A nelle versioni moderne di Excel (2013 - 365).
Per tutti i dettagli, vedere la funzione Excel IFNA.
XLOOKUP
Supportato in Excel 2021 e Excel 365
Grazie alla funzionalità "se errore" incorporata, la funzione XLOOKUP è il modo più semplice per cercare senza errori #N/A in Excel. È sufficiente digitare un testo di facile comprensione nel quarto argomento opzionale, denominato se_non_trovato .
Ad esempio:
=XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "No")
Limitazione: cattura solo gli errori #N/A, ignorando gli altri tipi.
Per ulteriori informazioni, consultare la funzione XLOOKUP di Excel.
Come vedete, Excel offre molte opzioni diverse per risolvere gli errori di VLOOKUP. Spero che questa esercitazione abbia fatto luce su come utilizzarle in modo efficace. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Download disponibili
ISERROR con esempi di VLOOKUP (file .xlsx)