Excel INDEX MATCH vs. VLOOKUP - formulevoorbeelden

  • Deel Dit
Michael Brown

Deze handleiding laat zien hoe u INDEX en MATCH kunt gebruiken in Excel en hoe het beter is dan VLOOKUP.

In een paar recente artikelen hebben we een goede poging gedaan om de basisprincipes van de VLOOKUP-functie uit te leggen aan beginners en meer complexe VLOOKUP-formulevoorbeelden te geven aan power users. En nu zal ik proberen om u zo niet van het gebruik van VLOOKUP af te brengen, dan toch minstens een alternatieve manier te tonen om een verticale lookup in Excel uit te voeren.

"Waar heb ik dat voor nodig?" vraagt u zich misschien af. Want VLOOKUP heeft tal van beperkingen die u in veel situaties het gewenste resultaat kunnen onthouden. De combinatie INDEX MATCH daarentegen is flexibeler en heeft veel geweldige mogelijkheden die haar in veel opzichten superieur maken aan VLOOKUP.

    Excel INDEX en MATCH functies - de grondbeginselen

    Aangezien het doel van deze handleiding is een alternatieve manier te demonstreren om een vlookup in Excel uit te voeren door een combinatie van de functies INDEX en MATCH te gebruiken, zullen we niet veel ingaan op hun syntaxis en gebruik. We zullen alleen het minimum behandelen dat nodig is om het algemene idee te begrijpen en vervolgens dieper ingaan op formulevoorbeelden die alle voordelen onthullen van het gebruik van INDEX MATCH in plaats van VLOOKUP.

    INDEX-functie - syntaxis en gebruik

    De INDEX-functie van Excel geeft een waarde terug in een matrix op basis van de rij- en kolomnummers die u opgeeft. De syntaxis van de INDEX-functie is eenvoudig:

    INDEX(array, rij_nummer, [kolom_nummer])

    Hier volgt een zeer eenvoudige uitleg van elke parameter:

    • array - een bereik van cellen waarvan u een waarde wilt teruggeven.
    • rij_nummer - het rijnummer in de array waarvan u een waarde wilt teruggeven. Indien weggelaten, is het kolom_nummer vereist.
    • kolom_nummer - het kolomnummer in de array waarvan u een waarde wilt teruggeven. Indien weggelaten, is row_num vereist.

    Voor meer informatie, zie Excel INDEX functie.

    En hier is een voorbeeld van de INDEX-formule in zijn eenvoudigste vorm:

    =INDEX(A1:C10,2,3)

    De formule zoekt in de cellen A1 tot en met C10 en geeft een waarde van de cel in de 2e rij en de 3e kolom, dus cel C2.

    Heel gemakkelijk, toch? Maar als je met echte gegevens werkt, weet je bijna nooit welke rij en kolom je wilt hebben, en dan komt de MATCH-functie van pas.

    MATCH functie - syntaxis en gebruik

    De Excel MATCH functie zoekt naar een lookup waarde in een bereik van cellen en retourneert de relatieve positie van die waarde in het bereik.

    De syntaxis van de MATCH-functie is als volgt:

    MATCH(lookup_value, lookup_array, [match_type])
    • lookup_waarde - het getal of de tekstwaarde die u zoekt.
    • lookup_array - een reeks cellen die worden doorzocht.
    • match_type - geeft aan of een exacte overeenkomst of de dichtstbijzijnde overeenkomst moet worden geretourneerd:
      • 1 of weggelaten - vindt de grootste waarde die kleiner of gelijk is aan de lookup-waarde. Vereist dat de lookup-array in oplopende volgorde wordt gesorteerd.
      • 0 - vindt de eerste waarde die precies gelijk is aan de opzoekwaarde. In de combinatie INDEX / MATCH heb je bijna altijd een exacte overeenkomst nodig, dus stel je het derde argument van je MATCH-functie in op 0.
      • -1 - vindt de kleinste waarde die groter of gelijk is aan lookup_value. Vereist het sorteren van de lookup array in aflopende volgorde.

    Indien bijvoorbeeld het bereik B1:B3 de waarden "New-York", "Parijs", "Londen" bevat, geeft de onderstaande formule het getal 3, omdat "Londen" het derde gegeven in het bereik is:

    =MATCH("London",B1:B3,0)

    Voor meer informatie, zie Excel MATCH functie.

    Op het eerste gezicht lijkt het nut van de MATCH functie twijfelachtig. Wie geeft er om de positie van een waarde in een bereik? Wat we wel willen weten is de waarde zelf.

    Ik herinner u eraan dat de relatieve positie van de lookup-waarde (d.w.z. rij- en kolomnummers) precies is wat u aan de rij_nummer en kolom_nummer Zoals u zich herinnert, kan Excel INDEX de waarde vinden op het kruispunt van een bepaalde rij en kolom, maar het kan niet bepalen welke rij en kolom u precies wilt hebben.

    Hoe de functie INDEX MATCH in Excel te gebruiken

    Nu u de basis kent, geloof ik dat het al duidelijk is geworden hoe MATCH en INDEX samenwerken. In een notendop: INDEX vindt de opzoekwaarde aan de hand van kolom- en rijnummers, en MATCH levert die nummers. Dat is het!

    Voor verticaal opzoeken gebruikt u de functie MATCH alleen om het rijnummer te bepalen en levert u het kolombereik rechtstreeks aan INDEX:

    INDEX ( kolom om een waarde terug te geven van , MATCH ( opzoekwaarde , kolom om tegen op te kijken , 0))

    Nog steeds moeite om dat uit te zoeken? Het is misschien makkelijker te begrijpen aan de hand van een voorbeeld. Stel je hebt een lijst van nationale hoofdsteden en hun bevolking:

    Om de bevolking van een bepaalde hoofdstad te vinden, bijvoorbeeld de hoofdstad van Japan, gebruikt u de volgende INDEX MATCH-formule:

    =INDEX(C2:C10, MATCH("Japan", A2:A10, 0))

    Laten we nu analyseren wat elk onderdeel van deze formule doet:

    • De MATCH-functie zoekt naar de opzoekwaarde "Japan" in het bereik A2:A10, en geeft het getal 3 terug, omdat "Japan" de derde is in de opzoek-array.
    • Het rijnummer gaat rechtstreeks naar de rij_nummer argument van INDEX om een waarde uit die rij terug te geven.

    De bovenstaande formule wordt dus een eenvoudige INDEX(C2:C,3) die zegt te zoeken in de cellen C2 tot en met C10 en de waarde uit de derde cel van dat bereik te halen, d.w.z. C4, omdat we beginnen te tellen vanaf de tweede rij.

    Wilt u de stad niet hard coderen in de formule? Voer deze in een cel in, bijvoorbeeld F1, geef de celverwijzing aan MATCH, en u krijgt een dynamische opzoekformule:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    Belangrijke opmerking! Het aantal rijen in de array argument van INDEX moet overeenkomen met het aantal rijen in de lookup_array argument van MATCH, anders geeft de formule een onjuist resultaat.

    Wacht, wacht... waarom gebruiken we niet gewoon de volgende Vlookup formule? Wat heeft het voor zin om tijd te verspillen aan het uitzoeken van de geheimzinnige kronkels van Excel MATCH INDEX?

    =VLOOKUP(F1, A2:C10, 3, FALSE)

    In dit geval heeft het helemaal geen zin :) Dit eenvoudige voorbeeld is alleen bedoeld als demonstratie, zodat u een idee krijgt van hoe de functies INDEX en MATCH samenwerken. Andere voorbeelden die hieronder volgen zullen u de echte kracht laten zien van deze combinatie die gemakkelijk vele complexe scenario's aankan wanneer VLOOKUP hapert.

    Tips:

    • In Excel 365 en Excel 2021 kunt u een modernere INDEX XMATCH-formule gebruiken.
    • Zie voor Google Sheets de formulevoorbeelden met INDEX MATCH in dit artikel.

    INDEX MATCH vs. VLOOKUP

    Bij de keuze van de functie voor verticale lookups zijn de meeste Excel-goeroes het erover eens dat INDEX MATCH veel beter is dan VLOOKUP. Veel mensen blijven echter bij VLOOKUP, ten eerste omdat die eenvoudiger is en ten tweede omdat zij niet alle voordelen begrijpen van het gebruik van de INDEX MATCH-formule in Excel. Zonder een dergelijk begrip is niemand bereid zijn tijd te investeren in het leren van een complexeresyntax.

    Hieronder zal ik wijzen op de belangrijkste voordelen van MATCH INDEX ten opzichte van VLOOKUP, en u beslist of het een waardige aanvulling is op uw Excel-arsenaal.

    4 belangrijke redenen om INDEX MATCH te gebruiken in plaats van VLOOKUP

    1. Van rechts naar links opzoeken. Zoals elke ervaren gebruiker weet, kan VLOOKUP niet naar links kijken, wat betekent dat uw opzoekwaarde altijd in de meest linkse kolom van de tabel moet staan. INDEX MATCH kan met gemak naar links kijken! Het volgende voorbeeld toont het in actie: Hoe een waarde naar links op te zoeken in Excel.
    2. Kolommen veilig invoegen of verwijderen. VLOOKUP-formules worden verbroken of leveren onjuiste resultaten op wanneer een nieuwe kolom wordt verwijderd uit of toegevoegd aan een opzoektabel, omdat de syntaxis van VLOOKUP vereist dat het indexnummer wordt opgegeven van de kolom waarvan u de gegevens wilt ophalen. Uiteraard verandert het indexnummer wanneer u kolommen toevoegt of verwijdert.

      Met INDEX MATCH specificeert u het bereik van de retourkolom, niet een indexnummer. Daardoor kunt u zoveel kolommen invoegen en verwijderen als u wilt, zonder dat u zich zorgen hoeft te maken over het bijwerken van elke bijbehorende formule.

    3. Geen limiet voor de grootte van een lookup-waarde. Wanneer u de VLOOKUP-functie gebruikt, mag de totale lengte van uw opzoekcriteria niet langer zijn dan 255 tekens, anders krijgt u de foutmelding #VALUE! Dus wanneer uw dataset lange tekenreeksen bevat, is INDEX MATCH de enige werkende oplossing.
    4. Hogere verwerkingssnelheid. Als uw tabellen relatief klein zijn, zal er nauwelijks een significant verschil zijn in de prestaties van Excel. Maar als uw werkbladen honderden of duizenden rijen bevatten, en dus ook honderden of duizenden formules, zal MATCH INDEX veel sneller werken dan VLOOKUP, omdat Excel alleen de opzoek- en retourkolommen hoeft te verwerken in plaats van de hele tabelarray.

      De invloed van VLOOKUP op de prestaties van Excel kan vooral merkbaar zijn wanneer uw werkmap complexe matrixformules bevat zoals VLOOKUP en SUM. Het punt is dat het controleren van elke waarde in de matrix een aparte aanroep van de VLOOKUP-functie vereist. Dus hoe meer waarden uw matrix bevat en hoe meer matrixformules u in een werkmap hebt, hoe langzamer Excel presteert.

    Excel INDEX MATCH - formulevoorbeelden

    Nu we de redenen kennen om de MATCH INDEX functie te leren, gaan we naar het interessantste deel en zien we hoe u de theoretische kennis in de praktijk kunt toepassen.

    Zoals reeds vermeld, kan VLOOKUP niet naar links kijken. Dus, tenzij uw lookup waarden zich in de meest linkse kolom bevinden, is er geen kans dat een Vlookup formule u het gewenste resultaat oplevert. De INDEX MATCH functie in Excel is veelzijdiger en maakt het niet uit waar de lookup en return kolommen zich bevinden.

    Voor dit voorbeeld voegen we de kolom Rangorde toe aan de linkerkant van onze voorbeeldtabel en proberen we uit te zoeken hoe de Russische hoofdstad Moskou scoort in termen van bevolking.

    Met de opzoekwaarde in G1 gebruikt u de volgende formule om in C2:C10 te zoeken en een overeenkomstige waarde uit A2:A10 terug te geven:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    Tip. Als u van plan bent uw INDEX MATCH formule voor meer dan één cel te gebruiken, zorg er dan voor dat u beide bereiken vergrendelt met absolute celverwijzingen (zoals $A$2:$A$10 en $C$2:4C$10) zodat ze niet vervormd raken bij het kopiëren van de formule.

    INDEX MATCH om te zoeken in rijen en kolommen

    In de bovenstaande voorbeelden gebruikten we INDEX MATCH als vervanging voor de klassieke VLOOKUP om een waarde terug te geven uit een vooraf gedefinieerd éénkolomsbereik. Maar wat als u in meerdere rijen en kolommen moet opzoeken? Met andere woorden, wat als u de zgn. matrix of tweeweg lookup?

    Dit klinkt misschien lastig, maar de formule lijkt sterk op de basis Excel INDEX MATCH functie, met slechts één verschil. Raad eens?

    Gebruik gewoon twee MATCH functies - één om een rijnummer te krijgen en de andere om een kolomnummer te krijgen. En ik feliciteer degenen die het goed geraden hebben :)

    INDEX (array, MATCH ( vlookup waarde , kolom om tegen op te kijken , 0), MATCH ( hlookup waarde , rij om tegen op te kijken , 0))

    En kijk nu naar de onderstaande tabel en laten we een INDEX MATCH MATCH formule maken om de bevolking (in miljoenen) in een bepaald land voor een bepaald jaar te vinden.

    Met het doelland in G1 (vlookup-waarde) en het doeljaar in G2 (hlookup-waarde) krijgt de formule deze vorm:

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

    Hoe deze formule werkt

    Wanneer u een complexe Excel-formule moet begrijpen, breek deze dan op in kleinere delen en kijk wat elke afzonderlijke functie doet:

    MATCH(G1,A2:A11,0) - zoekt door A2:A11 naar de waarde in cel G1 ("China") en geeft de positie ervan terug, die 2 is.

    MATCH(G2,B1:D1,0)) - doorzoekt B1:D1 om de positie van de waarde in cel G2 ("2015") te krijgen, die 3 is.

    De bovenstaande rij- en kolomnummers komen overeen met de overeenkomstige argumenten van de INDEX-functie:

    INDEX(B2:D11, 2, 3)

    Als resultaat krijg je een waarde op het snijpunt van de 2e rij en 3e kolom in het bereik B2:D11, dat is de waarde in cel D3. Makkelijk? Ja!

    Excel INDEX MATCH om meerdere criteria op te zoeken

    Als u de kans had om onze Excel VLOOKUP tutorial te lezen, hebt u waarschijnlijk al een formule voor Vlookup met meerdere criteria getest. Een belangrijke beperking van die aanpak is echter de noodzaak om een hulpkolom toe te voegen. Het goede nieuws is dat Excel's INDEX MATCH functie ook kan opzoeken met twee of meer criteria, zonder uw brongegevens te wijzigen of te herstructureren!

    Hier is de algemene INDEX MATCH formule met meerdere criteria:

    {=INDEX( return_range , MATCH(1, ( criteria1 = reeks1 ) * ( criteria2 = reeks2 ), 0))}

    Opmerking. Dit is een matrixformule die moet worden ingevuld met de sneltoets Ctrl + Shift + Enter.

    Stel dat u in onderstaande voorbeeldtabel het bedrag wilt vinden op basis van 2 criteria, Klant en Product .

    De volgende INDEX MATCH formule werkt uitstekend:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    Waarbij C2:C10 het bereik is om een waarde terug te geven, F1 is criterium1, A2:A10 is het bereik om te vergelijken met criterium1, F2 is criterium 2, en B2:B10 is het bereik om te vergelijken met criterium2.

    Vergeet niet de formule correct in te voeren door op Ctrl + Shift + Enter te drukken, en Excel zal de formule automatisch omsluiten met accolades zoals in de schermafbeelding:

    Als u liever geen matrixformules gebruikt in uw werkbladen, voeg dan nog een INDEX-functie toe aan de formule en vul deze aan met een gewone Enter-toets:

    Hoe deze formules werken

    De formules gebruiken dezelfde aanpak als de basisfunctie INDEX MATCH die in één enkele kolom kijkt. Om meerdere criteria te evalueren, maakt u twee of meer matrices van TRUE en FALSE waarden die overeenkomsten en niet-overeenkomsten voor elk afzonderlijk criterium weergeven, en vermenigvuldigt u vervolgens de overeenkomstige elementen van deze matrices. De vermenigvuldigingsoperatie zet TRUE en FALSE om in 1 en 0,De MATCH-functie met een opzoekwaarde van 1 vindt de eerste "1" in de matrix en geeft de positie ervan door aan INDEX, die een waarde in deze rij uit de opgegeven kolom teruggeeft.

    De niet-array formule vertrouwt op het vermogen van de INDEX functie om arrays te verwerken. De tweede INDEX is geconfigureerd met 0 rij_nummer zodat het de hele kolommenreeks doorgeeft aan MATCH.

    Dit is een uitleg op hoog niveau van de logica van de formule. Voor volledige details, zie Excel INDEX MATCH met meerdere criteria.

    Excel INDEX MATCH met AVERAGE, MAX, MIN

    Microsoft Excel heeft speciale functies om een minimum, maximum en gemiddelde waarde in een bereik te vinden. Maar wat als u een waarde uit een andere cel moet halen die met die waarden samenhangt? In dat geval gebruikt u de functie MAX, MIN of AVERAGE in combinatie met INDEX MATCH.

    INDEX MATCH met MAX

    Om de grootste waarde in kolom D te vinden en een waarde uit kolom C in dezelfde rij terug te geven, gebruikt u deze formule:

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    INDEX MATCH met MIN

    Gebruik deze om de kleinste waarde in kolom D te vinden en een bijbehorende waarde uit kolom C te halen:

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    INDEX MATCH met AVERAGE

    Om de waarde te berekenen die het dichtst bij het gemiddelde in D2:D10 ligt en een overeenkomstige waarde uit kolom C te halen, moet de volgende formule worden gebruikt:

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    Afhankelijk van hoe uw gegevens zijn georganiseerd, geeft u 1 of -1 op bij het derde argument (match_type) van de MATCH-functie:

    • Als je lookup kolom (kolom D in ons geval) gesorteerd is oplopend , zet 1. De formule zal de grootste waarde berekenen die minder dan of gelijk aan de gemiddelde waarde.
    • Als je lookup kolom gesorteerd is aflopend , voer -1 in. De formule berekent de kleinste waarde die groter dan of gelijk aan de gemiddelde waarde.
    • Als uw lookup array een waarde bevat precies gelijk aan het gemiddelde, kunt u 0 invullen voor een exacte overeenkomst. Sorteren is niet nodig.

    In ons voorbeeld zijn de populaties in kolom D gesorteerd in aflopende volgorde, dus gebruiken we -1 voor het type overeenkomst. Als resultaat krijgen we "Tokio", aangezien haar bevolking (13.189.000) de dichtstbijzijnde overeenkomst is die groter is dan het gemiddelde (12.269.006).

    Misschien bent u benieuwd dat VLOOKUP dergelijke berekeningen ook kan uitvoeren, maar dan als een matrixformule: VLOOKUP met AVERAGE, MAX, MIN.

    INDEX MATCH gebruiken met IFNA / IFERROR

    Zoals u waarschijnlijk heeft gemerkt, produceert een INDEX MATCH formule in Excel een #N/A foutmelding als deze geen opzoekwaarde kan vinden. Als u de standaard foutmelding wilt vervangen door iets zinvollers, wikkel dan uw INDEX MATCH formule in de IFNA functie. Bijvoorbeeld:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Er is geen overeenkomst gevonden")

    En nu, als iemand een lookup-tabel invoert die niet bestaat in het lookup-bereik, zal de formule de gebruiker expliciet informeren dat er geen overeenkomst is gevonden:

    Als u alle fouten wilt opvangen, niet alleen #N/A, gebruik dan de functie IFERROR in plaats van IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!").

    Houd er rekening mee dat het in veel situaties onverstandig kan zijn om alle fouten te verbergen, omdat ze u wijzen op mogelijke fouten in uw formule.

    Dat is hoe u INDEX en MATCH gebruikt in Excel. Ik hoop dat onze formulevoorbeelden nuttig voor u zijn en zie u graag volgende week op onze blog!

    Praktijk werkboek om te downloaden

    Excel INDEX MATCH voorbeelden (.xlsx bestand)

    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.