Excel VLOOKUP werkt niet - correctie van #N/A en #VALUE fouten

  • Deel Dit
Michael Brown

Trekt uw VLOOKUP verkeerde gegevens op of krijgt u hem helemaal niet aan de praat? Deze handleiding laat zien hoe u veelvoorkomende fouten in VLOOKUP snel kunt oplossen en de belangrijkste beperkingen ervan kunt overwinnen.

In een paar eerdere artikelen hebben we verschillende aspecten van de Excel VLOOKUP-functie onderzocht. Als u ons op de voet hebt gevolgd, zou u nu een expert op dit gebied moeten zijn :)

Het is echter niet zonder reden dat veel Excel-specialisten VLOOKUP beschouwen als een van de meest ingewikkelde Excel-functies. Het heeft een heleboel beperkingen, die de bron zijn van diverse problemen en fouten.

In dit artikel vindt u eenvoudige uitleg over de belangrijkste oorzaken van VLOOKUP-fouten zoals #N/A, #NAME en #VALUE, evenals hun oplossingen en oplossingen. We beginnen met de meest voor de hand liggende redenen waarom VLOOKUP niet werkt, dus het is misschien een goed idee om de onderstaande stappen voor probleemoplossing in volgorde te bekijken.

    Fout #N/A oplossen in VLOOKUP

    In VLOOKUP-formules wordt de foutmelding #N/A (wat "niet beschikbaar" betekent) weergegeven wanneer Excel een lookup-waarde niet kan vinden. Er kunnen verschillende redenen zijn waarom dat gebeurt.

    1. De opzoekwaarde is verkeerd gespeld.

    Het is altijd een goed idee om eerst het meest voor de hand liggende te controleren : ) Misdrukken komen vaak voor wanneer u werkt met echt grote gegevensverzamelingen bestaande uit duizenden rijen, of wanneer een lookup-waarde rechtstreeks in de formule wordt getypt.

    2. #N/A in approximate match VLOOKUP

    Als uw formule de dichtstbijzijnde overeenkomst opzoekt, ( range_lookup argument ingesteld op TRUE of weggelaten), kan de #N/A-fout in twee gevallen optreden:

    • De lookup waarde is kleiner dan de kleinste waarde in de lookup array.
    • De opzoekkolom is niet gesorteerd in oplopende volgorde.

    3. #N/A in exacte match VLOOKUP

    Als u zoekt naar een exacte overeenkomst ( range_lookup argument ingesteld op FALSE), treedt de fout #N/A op wanneer een waarde die precies gelijk is aan de opzoekwaarde niet wordt gevonden. Voor meer informatie, zie VLOOKUP exacte overeenkomst vs. benaderende overeenkomst.

    4. De opzoekkolom is niet de meest linkse kolom van de tabelrij

    Een van de belangrijkste beperkingen van Excel VLOOKUP is dat het niet naar links kan kijken. Bijgevolg moet een lookup kolom altijd de meest linkse kolom In de praktijk vergeten we dit vaak en krijgen we #N/A fouten.

    Oplossing : Indien het niet mogelijk is uw gegevens zo te herstructureren dat de opzoekkolom de meest linkse kolom is, kunt u de functies INDEX en MATCH samen gebruiken als alternatief voor VLOOKUP. Hier is een formulevoorbeeld: formule INDEX MATCH om waarden links op te zoeken.

    5. Nummers worden opgemaakt als tekst

    Een andere veel voorkomende bron #N/A-fouten in VLOOKUP-formules zijn getallen die als tekst zijn opgemaakt, hetzij in de hoofd-, hetzij in de lookup-tabel.

    Dit gebeurt meestal wanneer u gegevens importeert uit een externe database of wanneer u een apostrof vóór een getal hebt getypt om voorloopnullen weer te geven.

    Hier zijn de meest voor de hand liggende indicatoren van getallen die als tekst zijn opgemaakt:

    Oplossing: Selecteer alle problematische nummers, klik op het foutpictogram en kies Converteren naar getal in het contextmenu. Voor meer informatie, zie Tekst omzetten naar een getal in Excel.

    6. Spaties voor of achter

    Dit is de minst voor de hand liggende oorzaak van de VLOOKUP #N/A-fout, omdat een menselijk oog die extra spaties nauwelijks kan waarnemen, vooral bij het werken met grote datasets waar de meeste invoer onder de scroll staat.

    Oplossing 1: Extra spaties in de opzoekwaarde

    Voor een correcte werking van uw VLOOKUP-formule moet u de lookup-waarde omwikkelen met de TRIM-functie:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Oplossing 2: Extra spaties in de opzoekkolom

    Als er extra spaties voorkomen in de opzoekkolom, is er geen eenvoudige manier om #N/A-fouten in VLOOKUP te vermijden. In plaats daarvan kunt u een combinatie van de functies INDEX, MATCH en TRIM gebruiken als een matrixformule:

    =INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))

    Aangezien dit een matrixformule is, moet u niet vergeten op Ctrl + Shift + Enter te drukken om de formule goed af te ronden (in Excel 365 en Excel 2021, waar matrices standaard zijn, werkt dit ook als een gewone formule).

    Tip. Een snel alternatief is het gereedschap Ruimtes bijsnijden, dat in enkele seconden overtollige spaties in zowel de opzoek- als de hoofdtabel verwijdert, waardoor uw VLOOKUP-formules foutloos worden.

    #VALUE! fout in VLOOKUP formules

    In het algemeen geeft Microsoft Excel de foutmelding #VALUE! wanneer een in de formule gebruikte waarde van een verkeerd gegevenstype is. Met betrekking tot VLOOKUP zijn er twee veel voorkomende oorzaken van de VALUE! foutmelding.

    1. Lookup waarde overschrijdt 255 karakters

    VLOOKUP kan geen waarden opzoeken die meer dan 255 tekens bevatten. Als uw opzoekwaarden deze limiet overschrijden, verschijnt een #VALUE! foutmelding:

    Oplossing In ons geval werkt deze formule perfect:

    =INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))

    2. Het volledige pad naar de lookup-werkmap wordt niet geleverd.

    Als u gegevens uit een andere werkmap haalt, moet u het volledige pad daarheen opnemen. Preciezer gezegd, u moet de naam van de werkmap inclusief de extensie tussen [vierkante haken] zetten en de naam van het blad opgeven, gevolgd door het uitroepteken. Als de naam van de werkmap of het blad, of beide, spaties of niet-alfabetische tekens bevatten, moet het pad tussen enkele aanhalingstekens staan.

    Dit is de structuur van de tabel_array argument naar Vlookup vanuit een andere werkmap:

    "[werkmapnaam]bladnaam"!bereik

    Een echte formule zou er ongeveer zo uitzien:

    =VLOOKUP($A$2,"[Nieuwe prijzen.xls]Sheet1"!$B:$D, 3, FALSE)

    De bovenstaande formule zal zoeken naar de waarde van A2 in kolom B van Blad1 in de Nieuwe prijzen werkmap, en geeft een overeenkomende waarde uit kolom D.

    Indien een element van het pad ontbreekt, zal uw VLOOKUP-formule niet werken en de foutmelding #VALUE opleveren (tenzij de lookup-werkmap momenteel geopend is).

    Voor meer informatie, zie:

    • Hoe verwijzen naar een ander blad of een andere werkmap in Excel
    • Hoe Vlookup doen vanuit een andere werkmap

    3. Het argument col_index_num is kleiner dan 1.

    Het is moeilijk voor te stellen dat iemand met opzet een getal kleiner dan 1 invoert om de kolom te specificeren waaruit de waarden moeten worden teruggegeven. Maar het kan gebeuren als dit argument wordt teruggegeven door een andere functie die in uw VLOOKUP-formule is genest.

    Dus, als de col_index_num argument is dan 1, zal uw formule ook de foutmelding #VALUE! teruggeven.

    Als col_index_num groter is dan het aantal kolommen in de tabelarray, geeft VLOOKUP de foutmelding #REF!

    VLOOKUP #NAME fout oplossen

    Dit is het gemakkelijkste geval - de #NAME? foutmelding verschijnt als u per ongeluk de naam van de functie verkeerd heeft gespeld.

    De oplossing ligt voor de hand - controleer de spelling :)

    De belangrijkste oorzaken van fouten in Excel VLOOKUP

    Behalve dat VLOOKUP een vrij ingewikkelde syntaxis heeft, heeft het aantoonbaar meer beperkingen dan enige andere Excel-functie. Vanwege deze beperkingen kan een ogenschijnlijk correcte formule vaak andere resultaten opleveren dan u had verwacht. Hieronder vindt u oplossingen voor enkele typische scenario's waarin VLOOKUP faalt.

    VLOOKUP is hoofdletterongevoelig

    De VLOOKUP-functie maakt geen onderscheid tussen hoofdletters en kleine letters en hoofdletters.

    Oplossing Gebruik VLOOKUP, XLOOKUP of INDEX MATCH in combinatie met de EXACT functie die kan overeenkomen met hoofdletters en kleine letters. De gedetailleerde uitleg en formulevoorbeelden vindt u in deze tutorial: 5 manieren om een hoofdlettergevoelige Vlookup te doen in Excel.

    Een nieuwe kolom werd ingevoegd of verwijderd uit de tabel

    Helaas stoppen VLOOKUP-formules telkens met werken wanneer een nieuwe kolom wordt verwijderd uit of toegevoegd aan de opzoektabel. Dit gebeurt omdat de syntaxis van de VLOOKUP-functie vereist dat het indexnummer van de retourkolom wordt gedefinieerd. Wanneer een nieuwe kolom wordt toegevoegd aan/verwijderd uit de tabelarray, verandert uiteraard dat indexnummer.

    Oplossing : De INDEX MATCH formule komt weer te hulp : ) Met INDEX MATCH specificeert u het opzoek- en retourbereik afzonderlijk, zodat u zoveel kolommen kunt verwijderen of invoegen als u wilt, zonder dat u zich zorgen hoeft te maken over het bijwerken van elke bijbehorende formule.

    Celverwijzingen veranderen bij het kopiëren van de formule naar andere cellen

    De kop geeft een volledige uitleg van het probleem, toch?

    Oplossing : Gebruik altijd absolute verwijzingen (met het $-teken) voor de tabel_array argument, bijvoorbeeld $A$2:$C$100 of $A:$C. U kunt snel schakelen tussen verschillende verwijzingstypen door op de F4-toets te drukken.

    VLOOKUP geeft de eerst gevonden waarde terug

    Zoals u al weet, geeft Excel VLOOKUP de eerste waarde die het vindt. U kunt het echter dwingen om de 2e, 3e, 4e of elk ander voorval dat u wilt mee te nemen. Er is ook een manier om de laatste overeenkomst of alle gevonden overeenkomsten te krijgen.

    Oplossingen Formulevoorbeelden zijn hier beschikbaar:

    • VLOOKUP en geef het N-de voorval terug
    • VLOOKUP meerdere waarden
    • XLOOKUP-formule om de laatste overeenkomst te krijgen

    Waarom werkt mijn VLOOKUP voor sommige cellen wel en voor andere niet?

    Wanneer uw VLOOKUP-formule in sommige cellen de juiste gegevens oplevert en in andere cellen #N/A fouten, kan dat een paar mogelijke redenen hebben.

    1. De tabel array is niet vergrendeld

    Stel dat je deze formule in rij 2 hebt staan (zeg in E2), wat mooi werkt:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    Bij het kopiëren naar rij 3 verandert de formule in:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Omdat een relatieve referentie wordt gebruikt voor tabel_array , het verandert op basis van de relatieve positie van de rij waar de formule wordt gekopieerd, in ons geval van A2:B10 naar A3:B11. Dus, als de overeenkomst in rij 2 staat, wordt hij niet gevonden!

    Oplossing Wanneer u een VLOOKUP-formule gebruikt voor meer dan één cel, moet u altijd de tabel array vergrendelen verwijzing met het $ teken zoals $A$2:$B$10.

    2. Tekstwaarden of gegevenstypen komen niet overeen

    Een andere veel voorkomende reden voor VLOOKUP falen is het verschil tussen uw lookup waarde en een vergelijkbare waarde in de lookup kolom. In sommige gevallen is het verschil zo subtiel dat het moeilijk visueel te zien is.

    Oplossing : Wanneer VLOOKUP een #N/A foutmelding geeft terwijl u duidelijk de lookup waarde in de lookup kolom kunt zien, en blijkbaar beide exact hetzelfde gespeld zijn, is het eerste wat u moet doen de hoofdoorzaak van het probleem bepalen - de formule of de brongegevens.

    Om te zien of de twee waarden gelijk of verschillend zijn, maakt u een directe vergelijking op deze manier:

    =E1=A4

    Waarbij E1 uw lookup waarde is en A4 een identieke waarde in de lookup kolom.

    Als de formule FALSE oplevert, betekent dit dat de waarden op de een of andere manier verschillen, hoewel ze absoluut gelijk lijken.

    In geval van numerieke waarden de meest mogelijke reden is getallen die als tekst zijn opgemaakt.

    In geval van tekstwaarden Om dit te controleren kunt u de totale lengte van de twee strings bepalen met de functie LEN:

    =LEN(E1)

    =LEN(A4)

    Als de resulterende getallen anders zijn (zoals in de schermafbeelding hieronder), dan heb je de boosdoener gevonden - extra spaties:

    U kunt dit probleem oplossen door extra spaties te verwijderen of deze INDEX MATCH TRIM formule te gebruiken als omweg.

    Waarom haalt mijn VLOOKUP verkeerde gegevens op?

    Er kunnen nog meer redenen zijn waarom uw VLOOKUP een verkeerde waarde oplevert:

    1. Verkeerde zoekmodus Als u een exacte overeenkomst wilt, moet u de range_lookup De standaardwaarde is TRUE, dus als u dit argument weglaat, zal VLOOKUP aannemen dat u een benaderende overeenkomst zoekt en zoeken naar de dichtstbijzijnde waarde die kleiner is dan de opzoekwaarde.
    2. De opzoekkolom is niet gesorteerd VLOOKUP ( range_lookup ingesteld op TRUE) correct werkt, moet de eerste kolom in de tabelarray oplopend gesorteerd zijn, van klein naar groot.
    3. Duplicaten in de opzoekkolom Indien de opzoekkolom twee of meer dubbele waarden bevat, geeft VLOOKUP de eerst gevonden overeenkomst terug, die misschien niet de overeenkomst is die u verwacht.
    4. Onjuiste retourkolom Dubbelcheck het indexnummer in het 3e argument :)

    VLOOKUP werkt niet tussen twee bladen

    Allereerst moet worden opgemerkt dat de veel voorkomende redenen van #N/A, #VALUE, en #REF fouten die hierboven zijn besproken dezelfde problemen kunnen veroorzaken bij het opzoeken vanuit een ander blad. Als dat niet het geval is, bekijk dan de volgende punten:

    1. Controleer of de externe verwijzing naar een ander blad of een andere werkmap correct is.
    2. Wanneer ik een Vlookup doe vanuit een andere werkmap die gesloten op dit moment, controleer of uw formule het volledige pad naar de gesloten werkmap bevat.
    3. Als VLOOKUP kan geen tabelarray in een ander werkblad kiezen (d.w.z. wanneer u een bereik in het opzoekblad markeert, verschijnt er niets in het tabel_array argument in de formule of in het overeenkomstige vak van de formulewizard), dan zijn de twee bladen waarschijnlijk geopend in afzonderlijke instanties van Excel en kunnen zij niet met elkaar communiceren. Zie voor meer informatie Hoe bepaalt u welke Excel-bestanden zich in welke instantie bevinden. Om dit op te lossen sluit u gewoon alle Excel-vensters en opent u de bladen/werkmappen opnieuw in dezelfde instantie (het standaardgedrag).

    Hoe te Vlookup zonder fouten in Excel

    Als u uw gebruikers niet wilt intimideren met standaard Excel-foutmeldingen, kunt u in plaats daarvan uw eigen gebruiksvriendelijke tekst weergeven of een lege cel retourneren als er niets wordt gevonden. Dit kan worden gedaan door gebruik te maken van VLOOKUP met de functie IFERROR of IFNA.

    Alle fouten opvangen

    In Excel 2007 en later kunt u de IFERROR-functie gebruiken om een VLOOKUP-formule op fouten te controleren en uw eigen tekst (of een lege tekenreeks) te retourneren indien elke fout wordt gedetecteerd.

    Bijvoorbeeld:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, something went wrong")

    In Excel 2003 en eerder kunt u voor hetzelfde doel de formule IF ISERROR gebruiken:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, something went wrong", VLOOKUP(E1, A2:B10, 2, FALSE))

    Zie voor meer details IFERROR gebruiken met VLOOKUP in Excel.

    Behandel #N/A fouten

    Om alleen #N/A-fouten op te vangen en alle andere fouttypen te negeren, gebruikt u de IFNA-functie (in Excel 2013 en hoger) of de IF ISNA-formule (in alle versies).

    Bijvoorbeeld:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oeps, er is geen overeenkomst gevonden. Probeer het opnieuw!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oeps, er is geen overeenkomst gevonden. Probeer het opnieuw!", VLOOKUP(E1, A2:B10, 2, FALSE))

    Dat is alles voor vandaag. Hopelijk helpt deze handleiding u van VLOOKUP-fouten af en werken uw formules zoals u wilt.

    VLOOKUP in Excel - video tutorial

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.