Excel IFERROR & VLOOKUP - trappola #N/A e altri errori

  • Condividi Questo
Michael Brown

In questa esercitazione vedremo come utilizzare le funzioni IFERROR e VLOOKUP insieme per intrappolare e gestire diversi errori. Inoltre, imparerete come eseguire vlookup sequenziali in Excel annidando più funzioni IFERROR una sull'altra.

VLOOKUP e IFERROR di Excel: queste due funzioni possono essere difficili da capire separatamente, figuriamoci quando vengono combinate. In questo articolo troverete alcuni esempi facili da seguire che affrontano gli usi più comuni e illustrano chiaramente la logica delle formule.

Se non si ha molta esperienza con le funzioni IFERROR e VLOOKUP, può essere una buona idea ripassare le loro basi seguendo i link sopra riportati.

    Formula VLOOKUP IFERROR per gestire #N/A e altri errori

    Quando Excel Vlookup non riesce a trovare un valore di ricerca, lancia un errore #N/A, come questo:

    A seconda delle esigenze aziendali, è possibile mascherare l'errore con un testo proprio, uno zero o una cella vuota.

    Esempio 1. IFERROR con formula VLOOKUP per sostituire gli errori con un testo personalizzato

    Se si desidera sostituire la notazione di errore standard con un testo personalizzato, avvolgere la formula VLOOKUP in IFERROR e digitare il testo desiderato nel secondo argomento ( valore_se_errore ), ad esempio "Non trovato":

    IFERROR(VLOOKUP( ... ), "Non trovato")

    Con il valore di ricerca in B2 nella tabella principale e l'intervallo di ricerca A2:B4 nella tabella di ricerca, la formula assume la forma seguente:

    =IFERROR(VLOOKUP(B2,'Tabella di ricerca'!$A$2:$B$5, 2, FALSE), "Non trovato")

    L'immagine seguente mostra la formula IFERROR VLOOKUP di Excel in azione:

    Il risultato appare molto più comprensibile e meno intimidatorio, non è vero?

    In modo analogo, è possibile utilizzare INDEX MATCH insieme a IFERROR:

    =IFERROR(INDEX('Tabella di ricerca'!$B$2:$B$5,MATCH(B2,'Tabella di ricerca'!$A$2:$A$5,0)), "Non trovato")

    La formula IFERROR INDEX MATCH è particolarmente utile quando si desidera estrarre i valori da una colonna che si trova a sinistra della colonna di ricerca (left lookup) e restituire il proprio testo quando non viene trovato nulla.

    Esempio 2. IFERROR con VLOOKUP per restituire vuoto o 0 se non viene trovato nulla

    Se non si vuole mostrare nulla quando il valore di ricerca non viene trovato, si può fare in modo che IFERROR visualizzi un messaggio stringa vuota (""):

    IFERROR(VLOOKUP( ... ),"")

    Nel nostro esempio, la formula è la seguente:

    =IFERROR(VLOOKUP(B2,'Tabella di ricerca'!$A$2:$B$5, 2, FALSE), "")

    Come si può vedere, non restituisce nulla quando il valore di ricerca non è presente nell'elenco.

    Se si desidera sostituire l'errore con l'opzione valore zero , inserire 0 nell'ultimo argomento:

    =IFERROR(VLOOKUP(B2,'Tabella di ricerca'!$A$2:$B$5, 2, FALSE), 0)

    Attenzione! La funzione IFERROR di Excel cattura tutti i tipi di errori, non solo #N/A. È buona o cattiva? Tutto dipende dal vostro obiettivo. Se volete mascherare tutti i possibili errori, la Vlookup IFERROR è la strada da percorrere, ma potrebbe essere una tecnica poco saggia in molte situazioni.

    Ad esempio, se si è creato un intervallo di nomi per i dati della tabella e si è sbagliato il nome nella formula di Vlookup, IFERROR catturerà l'errore #NAME? e lo sostituirà con "Not found" o con qualsiasi altro testo fornito dall'utente. Di conseguenza, l'utente potrebbe non accorgersi mai che la formula sta producendo risultati errati, a meno che non sia lui stesso a individuare l'errore di battitura. In questo caso, un approccio più ragionevole consisterebbe nel catturare solo gli errori #N/A.A tale scopo, utilizzare la formula IFNA Vlookup in Excel 2013 e versioni successive, IF ISNA VLOOKUP in tutte le versioni di Excel.

    La conclusione è: fate molta attenzione quando scegliete un compagno per la vostra formula VLOOKUP :)

    Nest IFERROR all'interno di VLOOKUP per trovare sempre qualcosa

    Immaginate la seguente situazione: cercate un valore specifico in un elenco e non lo trovate. Quali sono le scelte possibili? Ottenere un errore N/A o mostrare il vostro messaggio. In realtà, c'è una terza opzione: se la vostra vlookup primaria inciampa, cercate qualcos'altro che è sicuramente presente!

    Proseguendo nel nostro esempio, creiamo una sorta di dashboard per i nostri utenti che mostri loro il numero di interno di un ufficio specifico. Qualcosa del genere:

    Quindi, come si estrae l'interno dalla colonna B in base al numero dell'ufficio in D2? Con questa normale formula Vlookup:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    Funzionerà bene se gli utenti inseriscono un numero valido in D2. Ma cosa succede se un utente inserisce un numero che non esiste? In questo caso, gli si permette di chiamare la centrale! Per questo, si incorpora la formula di cui sopra nel file valore di IFERROR e inserire un'altra Vlookup nell'oggetto valore_se_errore argomento.

    La formula completa è un po' lunga, ma funziona perfettamente:

    =IFERROR(VLOOKUP("ufficio"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("ufficio centrale",$A$2:$B$7,2,FALSE))

    Se il numero dell'ufficio viene trovato, l'utente ottiene il numero di interno corrispondente:

    Se il numero dell'ufficio non viene trovato, viene visualizzato l'interno della sede centrale:

    Per rendere la formula un po' più compatta, si può utilizzare un approccio diverso:

    Per prima cosa, si controlla se il numero in D2 è presente nella colonna di ricerca (si noti che è stato impostato il valore col_index_num a 1 perché la formula cerchi e restituisca il valore della colonna A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Se il numero dell'ufficio specificato non viene trovato, si cerca la stringa "ufficio centrale", che si trova sicuramente nell'elenco di ricerca. A tale scopo, si avvolge il primo VLOOKUP in IFERROR e si annida l'intera combinazione in un'altra funzione VLOOKUP:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "ufficio centrale"),$A$2:$B$7,2)

    Una formula leggermente diversa, ma lo stesso risultato:

    Ma qual è il motivo per cercare "ufficio centrale"? Perché non fornire il numero di interno direttamente in IFERROR? Perché l'interno potrebbe cambiare a un certo punto in futuro. Se ciò accade, dovrete aggiornare i dati solo una volta nella tabella di origine, senza preoccuparvi di aggiornare ogni formula VLOOKUP.

    Come eseguire VLOOKUP sequenziali in Excel

    Nelle situazioni in cui è necessario eseguire la cosiddetta sequenziale o incatenato Le Vlookup in Excel dipendono dal successo o dal fallimento di una precedente ricerca, annidando due o più funzioni IFERROR per eseguire le Vlookup una alla volta:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Non trovato"))

    La formula funziona con la seguente logica:

    Se il primo VLOOKUP non trova nulla, il primo IFERROR cattura un errore ed esegue un altro VLOOKUP. Se il secondo VLOOKUP fallisce, il secondo IFERROR cattura un errore ed esegue il terzo VLOOKUP, e così via. Se tutti i Vlookup inciampano, l'ultimo IFERROR restituisce il messaggio.

    Questa formula IFERROR annidata è particolarmente utile quando si deve eseguire un Vlookup su un'intera area. fogli multipli come mostrato nell'esempio seguente.

    Supponiamo di avere tre elenchi di dati omogenei in tre fogli di lavoro diversi (numeri di ufficio in questo esempio) e di voler ottenere un'estensione per un certo numero.

    Supponendo che il valore di ricerca sia nella cella A2 del foglio corrente e che l'intervallo di ricerca sia A2:B5 in 3 fogli di lavoro diversi (Nord, Sud e Ovest), la formula seguente funziona benissimo:

    =IFERROR(VLOOKUP(A2,Nord!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Sud!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Ovest!$A$2:$B$5,2,FALSE), "Non trovato"))

    Quindi, la nostra formula "Vlookup concatenati" cerca in tre fogli diversi nell'ordine in cui li abbiamo annidati nella formula e riporta la prima corrispondenza che trova:

    Ecco come utilizzare IFERROR con VLOOKUP in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Download disponibili

    Esempi di formula IFERROR VLOOKUP di Excel

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.