Inhoudsopgave
In deze handleiding bekijken we hoe u IFERROR- en VLOOKUP-functies samen kunt gebruiken om verschillende fouten op te vangen en af te handelen. Bovendien leert u hoe u opeenvolgende vlookups kunt maken in Excel door meerdere IFERROR-functies op elkaar te nesten.
Excel VLOOKUP en IFERROR - deze twee functies kunnen vrij moeilijk te begrijpen zijn afzonderlijk, laat staan wanneer ze worden gecombineerd. In dit artikel vindt u een paar gemakkelijk te volgen voorbeelden die veelvoorkomende toepassingen behandelen en de logica van de formules duidelijk illustreren.
Als u niet veel ervaring hebt met IFERROR- en VLOOKUP-functies, is het misschien een goed idee om eerst de basis ervan te leren kennen door de bovenstaande links te volgen.
IFERROR VLOOKUP-formule om #N/A en andere fouten te verwerken
Wanneer Excel Vlookup er niet in slaagt een opzoekwaarde te vinden, geeft het een #N/A foutmelding, zoals deze:
Afhankelijk van uw zakelijke behoeften kunt u de fout verbergen met een eigen tekst, nul of een lege cel.
Voorbeeld 1. IFERROR met VLOOKUP-formule om fouten te vervangen door uw eigen tekst
Als u de standaard foutnotatie wilt vervangen door uw eigen tekst, wikkel dan uw VLOOKUP-formule in IFERROR, en typ in het 2e argument de tekst die u wilt ( value_if_error ), bijvoorbeeld "Niet gevonden":
IFERROR(VLOOKUP( ... ),"Niet gevonden")Met de opzoekwaarde in B2 in de hoofdtabel en het opzoekbereik A2:B4 in de opzoektabel krijgt de formule de volgende vorm:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Niet gevonden")
De schermafbeelding hieronder toont onze Excel IFERROR VLOOKUP-formule in actie:
Het resultaat ziet er veel begrijpelijker en veel minder intimiderend uit, nietwaar?
Op soortgelijke wijze kunt u INDEX MATCH gebruiken in combinatie met IFERROR:
=IFERROR(INDEX('Opzoektabel'!$B$2:$B$5,MATCH(B2,'Opzoektabel'!$A$2:$A$5,0)), "Niet gevonden")
De formule IFERROR INDEX MATCH is vooral nuttig wanneer u waarden wilt halen uit een kolom die links van de lookup-kolom ligt (left lookup), en uw eigen tekst teruggeeft wanneer er niets wordt gevonden.
Voorbeeld 2. IFERROR met VLOOKUP om blanco of 0 terug te geven als er niets wordt gevonden
Als u niets wilt laten zien wanneer de opzoekwaarde niet wordt gevonden, laat IFERROR dan een lege tekenreeks (""):
IFERROR(VLOOKUP( ... ),"")In ons voorbeeld gaat de formule als volgt:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")
Zoals u ziet, levert het niets op wanneer de opzoekwaarde niet in de zoeklijst staat.
Als u de fout wilt vervangen door de nulwaarde zet 0 in het laatste argument:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)
Een waarschuwing! Excel IFERROR functie vangt alle soorten fouten op, niet alleen #N/A. Is het goed of slecht? Alles hangt af van uw doel. Als u alle mogelijke fouten wilt maskeren, is IFERROR Vlookup de manier om te gaan. Maar het kan een onverstandige techniek zijn in veel situaties.
Als u bijvoorbeeld een naambereik voor uw tabelgegevens hebt gemaakt, en die naam in uw Vlookup-formule verkeerd hebt gespeld, zal IFERROR een #NAME? fout opvangen en vervangen door "Niet gevonden" of een andere tekst die u opgeeft. Het resultaat is dat u misschien nooit zult weten dat uw formule verkeerde resultaten oplevert, tenzij u de typfout zelf ontdekt. In zo'n geval zou een redelijker aanpak zijn om alleen #N/A fouten op te vangen.Gebruik hiervoor de formule IFNA Vlookup in Excel 2013 en hoger, IF ISNA VLOOKUP in alle Excel-versies.
Het komt erop neer: wees heel voorzichtig bij het kiezen van een begeleider voor uw VLOOKUP-formule :)
Nest IFERROR binnen VLOOKUP om altijd iets te vinden
Stel je de volgende situatie voor: je zoekt een specifieke waarde op in een lijst en vindt die niet. Welke keuzes heb je dan? Of je krijgt een N/A-foutmelding of je toont je eigen bericht. Eigenlijk is er een derde optie - als je primaire vlookup hapert, zoek dan naar iets anders dat er wel degelijk is!
Laten we ons voorbeeld verder uitwerken en een soort dashboard voor onze gebruikers maken dat hen een toestelnummer van een bepaald kantoor toont. Zoiets als dit:
Dus, hoe haal je de extensie uit kolom B op basis van het kantoornummer in D2? Met deze gewone Vlookup formule:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
En het zal prima werken zolang uw gebruikers een geldig nummer invoeren in D2. Maar wat als een gebruiker een nummer invoert dat niet bestaat? In dat geval laat u hen het centrale kantoor bellen! Hiervoor sluit u de bovenstaande formule in in de waarde argument van IFERROR, en zet een andere Vlookup in de value_if_error argument.
De volledige formule is een beetje lang, maar werkt perfect:
=IFERROR(VLOOKUP("kantoor"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("centraal kantoor",$A$2:$B$7,2,FALSE))
Als het kantoornummer wordt gevonden, krijgt de gebruiker het bijbehorende toestelnummer:
Als het kantoornummer niet wordt gevonden, wordt het toestel van het hoofdkantoor weergegeven:
Om de formule wat compacter te maken, kun je een andere aanpak gebruiken:
Controleer eerst of het getal in D2 aanwezig is in de opzoekkolom (merk op dat we het volgende instellen col_index_num op 1 voor de formule om de waarde van kolom A op te zoeken en terug te geven): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
Indien het opgegeven kantoornummer niet wordt gevonden, zoeken we naar de string "centraal kantoor", die zeker in de opzoeklijst staat. Hiervoor wikkel je de eerste VLOOKUP in IFERROR en nestelt deze hele combinatie in een andere VLOOKUP-functie:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE),"centraal kantoor"),$A$2:$B$7,2)
Nou, een iets andere formule, hetzelfde resultaat:
Maar wat is de reden om "centraal kantoor" op te zoeken, zult u zich afvragen. Waarom levert u het toestelnummer niet rechtstreeks in IFERROR? Omdat het toestel op enig moment in de toekomst kan veranderen. Als dit gebeurt, hoeft u uw gegevens slechts eenmaal bij te werken in de brontabel, zonder dat u zich zorgen hoeft te maken over het bijwerken van elk van uw VLOOKUP-formules.
Hoe opeenvolgende VLOOKUPs maken in Excel
In situaties waarin u de zgn. sequentieel of geketend Vlookups in Excel, afhankelijk van of een eerdere lookup slaagde of faalde, nestelen twee of meer IFERROR-functies om uw Vlookups één voor één uit te voeren:
IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ),"Niet gevonden"))De formule werkt met de volgende logica:
Als de eerste VLOOKUP niets vindt, vangt de eerste IFERROR een fout op en voert een andere VLOOKUP uit. Als de tweede VLOOKUP mislukt, vangt de tweede IFERROR een fout op en voert de derde VLOOKUP uit, enzovoort. Als alle Vlookups mislukken, geeft de laatste IFERROR uw bericht terug.
Deze geneste IFERROR-formule is vooral nuttig wanneer u moet Vlookup-en over meerdere bladen zoals in onderstaand voorbeeld.
Stel, u hebt drie lijsten met homogene gegevens in drie verschillende werkbladen (kantoornummers in dit voorbeeld), en u wilt een uitbreiding voor een bepaald nummer.
Ervan uitgaande dat de opzoekwaarde in cel A2 van het huidige blad staat, en het opzoekbereik A2:B5 in 3 verschillende werkbladen is (noord, zuid en west), werkt de volgende formule uitstekend:
=IFERROR(VLOOKUP(A2,Noorden!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,Zuiden!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE),"Niet gevonden")).
Onze "kettingformule voor Vlookups" zoekt dus in drie verschillende bladen in de volgorde waarin we ze in de formule hebben genest, en brengt de eerste overeenkomst die wordt gevonden:
Zo gebruikt u IFERROR met VLOOKUP in Excel. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!
Beschikbare downloads
Excel IFERROR VLOOKUP formule voorbeelden