INDEX MATCH in Google Sheets - een andere manier voor verticaal opzoeken

  • Deel Dit
Michael Brown

Wanneer u in uw blad gegevens moet vinden die overeenstemmen met een bepaalde sleutelrecord, is het meestal Google Sheets VLOOKUP waartoe u zich wendt. Maar zie daar: VLOOKUP geeft u vrijwel onmiddellijk beperkingen. Daarom kunt u de middelen voor de taak beter vergroten door INDEX MATCH te leren.

INDEX MATCH in Google Sheets is een combinatie van twee functies: INDEX en MATCH. Wanneer ze samen worden gebruikt, vormen ze een beter alternatief voor Google Sheets VLOOKUP. Laten we in deze blogpost eens kijken naar hun mogelijkheden samen. Maar eerst wil ik u een korte rondleiding geven over hun eigen rol in spreadsheets.

    Google Sheets MATCH functie

    Ik zou willen beginnen met Google Sheets MATCH omdat het heel eenvoudig is. Het scant uw gegevens voor een specifieke waarde en geeft de positie ervan terug:

    =MATCH(search_key, range, [search_type])
    • zoeksleutel is die plaat die je zoekt. Vereist.
    • reeks is ofwel een rij of een kolom om in te kijken. Vereist.

      Opmerking: MATCH accepteert alleen eendimensionale matrices: rij of kolom.

    • zoek_type is optioneel en bepaalt of de overeenkomst exact of benaderend moet zijn. Indien weggelaten, is dit standaard 1:
      • 1 betekent dat het bereik in oplopende volgorde wordt gesorteerd. De functie krijgt de grootste waarde die kleiner of gelijk is aan uw zoeksleutel .
      • 0 laat de functie zoeken naar de exacte overeenkomst indien uw bereik niet gesorteerd is.
      • -1 geeft aan dat records worden gerangschikt met aflopende sortering. In dit geval krijgt de functie de kleinste waarde die groter of gelijk is aan uw zoeksleutel .

    Hier is een voorbeeld: om een positie van een bepaalde bes in de lijst van alle bessen te krijgen, heb ik de volgende MATCH-formule nodig in mijn Google Sheets:

    =MATCH("Blueberry", A1:A10, 0)

    Google Sheets INDEX-functie

    Terwijl MATCH aangeeft waar uw waarde moet worden gezocht (de plaats ervan in het bereik), haalt de INDEX-functie van Google Sheets de waarde zelf op aan de hand van de rij- en kolomafstanden:

    =INDEX(referentie, [rij], [kolom])
    • referentie is het bereik om in te kijken. Vereist.
    • rij is het aantal rijen dat verschoven moet worden vanaf de allereerste cel van uw bereik. Optioneel, 0 indien weggelaten.
    • kolom net als rij , is het aantal offset kolommen. Ook optioneel, ook 0 indien weggelaten.

    Als u beide optionele argumenten opgeeft (rij en kolom), geeft Google Sheets INDEX een record terug uit een bestemmingscel:

    =INDEX(A1:C10, 7, 1)

    Sla één van die argumenten over en de functie geeft je de hele rij of kolom dienovereenkomstig:

    =INDEX(A1:C10, 7)

    Hoe INDEX MATCH gebruiken in Google Sheets - formulevoorbeelden

    Wanneer INDEX en MATCH samen worden gebruikt in spreadsheets, zijn ze op hun machtigst. Ze kunnen absoluut Google Sheets VLOOKUP vervangen en het gewenste record ophalen uit een tabel op basis van uw sleutelwaarde.

    Bouw uw eerste INDEX MATCH-formule voor Google Sheets

    Stel dat u de voorraadinformatie over cranberry's uit dezelfde tabel wilt halen die ik hierboven heb gebruikt. Ik heb alleen de kolommen B en C verwisseld (u zult later zien waarom).

    1. Nu staan alle bessen in kolom C. Met de MATCH-functie van Google Sheets kunt u de exacte rij van de veenbes vinden: 8

      =MATCH("Cranberry", C1:C10, 0)

    2. Zet die hele MATCH-formule op een rij argument in de INDEX-functie:

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))

      Deze zal de hele rij met cranberry's erin terugbrengen.

    3. Maar omdat u alleen de voorraadinformatie nodig hebt, moet u ook het nummer van de opzoekkolom opgeven: 3

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)

    4. Voila!

    5. Je kunt verder gaan en die laatste kolomindicator opgeven ( 2 Je hebt het helemaal niet nodig als je alleen de opzoekkolom gebruikt ( B1:B10 ) in plaats van de hele tabel ( A1:C10 ) als eerste argument:

      =INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))

      Tip. Een handigere manier om de beschikbaarheid van verschillende bessen te controleren zou zijn om ze in een keuzelijst te plaatsen ( E2 ) en uw MATCH-functie verwijzen naar de cel met die lijst:

      =INDEX(B1:B10, MATCH(E2, C1:C10, 0))

      Zodra u de bes selecteert, zal de bijbehorende waarde dienovereenkomstig veranderen:

    Waarom INDEX MATCH in Google Sheets beter is dan VLOOKUP

    U weet al dat Google Sheets INDEX MATCH uw waarde opzoekt in een tabel en een ander gerelateerd record uit dezelfde rij teruggeeft. En u weet dat Google Sheets VLOOKUP precies hetzelfde doet. Dus waarom zou u zich druk maken?

    Het zit zo, INDEX MATCH heeft enkele grote voordelen over VLOOKUP:

    1. Links opzoeken is mogelijk Ik heb de kolommen eerder verplaatst om dit te illustreren: de INDEX MATCH-functie in Google Sheets kan links van de zoekkolom kijken en doet dat ook. VLOOKUP zoekt altijd in de allereerste kolom van het bereik en zoekt naar overeenkomsten rechts daarvan - anders krijgt het alleen #N/A-fouten:

    2. Geen verknipte referenties bij het toevoegen van nieuwe kolommen en het verplaatsen van bestaande. Als u kolommen toevoegt of verplaatst, zal INDEX MATCH de wijzigingen automatisch weergeven zonder zich met het resultaat te bemoeien. Omdat u kolomverwijzingen gebruikt, worden deze direct door Google Sheets aangepast:

      Probeer dit maar eens te doen met VLOOKUP: het vereist het bestelnummer in plaats van celverwijzingen voor een opzoekkolom. U krijgt dus uiteindelijk gewoon de verkeerde waarde omdat een andere kolom dezelfde plaats inneemt - kolom 2 in mijn voorbeeld:

    3. Overweegt tekstgeval indien nodig (meer hierover hieronder).
    4. Kan worden gebruikt voor verticaal opzoeken op basis van meerdere criteria.

    Ik nodig u uit de laatste twee punten hieronder in detail te bekijken.

    Hoofdlettergevoelige v-lookup met INDEX MATCH in Google Sheets

    INDEX MATCH is een go-to als het gaat om hoofdlettergevoeligheid.

    Stel dat alle bessen op twee manieren worden verkocht - los (gewogen aan de toonbank) en verpakt in dozen. Er zijn dus twee gevallen van elke bes in verschillende gevallen in de lijst, elk met zijn eigen ID die ook per geval verschilt:

    Dus hoe kun je de voorraadinformatie opzoeken van een bes die op een bepaalde manier wordt verkocht? VLOOKUP geeft de eerste naam die het vindt, ongeacht het geval.

    Gelukkig kan INDEX MATCH voor Google Sheets dit correct doen. U hoeft slechts één extra functie te gebruiken - FIND of EXACT.

    Voorbeeld 1. FIND voor hoofdlettergevoelige Vlookup

    FIND is een hoofdlettergevoelige functie in Google Sheets, wat het geweldig maakt voor hoofdlettergevoelig verticaal opzoeken:

    =ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))

    Laten we eens kijken wat er gebeurt in deze formule:

    1. FIND scant kolom C ( C2:C19 ) voor het verslag van E2 ( kers Eenmaal gelokaliseerd, "markeert" de formule die cel met een cijfer - 1 .
    2. MATCH zoekt naar dit merk - 1 - in dezelfde kolom ( C ) en geeft het nummer van zijn rij door aan INDEX.
    3. INDEX komt op die rij in kolom B ( B2:B19 ) en haalt het gewenste record op.
    4. Wanneer u klaar bent met het maken van de formule, drukt u op Ctrl+Shift+Enter om ArrayFormula toe te voegen aan het begin. Dit is nodig omdat FIND zonder deze formule niet kan zoeken in arrays (in meer dan één cel). Of u kunt ' ArrayFormula van je toetsenbord.

    Voorbeeld 2. EXACT voor hoofdlettergevoelige Vlookup

    Als u FIND vervangt door EXACT, zoekt deze laatste naar records met exact dezelfde tekens, inclusief de hoofdletters en kleine letters.

    Het enige verschil is dat EXACT een overeenkomst "markeert" met WARE in plaats van nummer 1 Het eerste argument voor MATCH moet dus zijn WARE :

    =ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))

    Google Sheets INDEX MATCH met meerdere criteria

    Wat als er meerdere voorwaarden zijn op basis waarvan u het record wilt ophalen?

    Laten we de prijs van de kers dat wordt verkocht in PP emmers en is al opraken :

    Ik heb alle criteria in de keuzelijsten gerangschikt in kolom F. En het is Google Sheets INDEX MATCH dat meerdere criteria ondersteunt, niet VLOOKUP. Hier is de formule die je moet gebruiken:

    =ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))

    Geen paniek! :) De logica is eigenlijk heel eenvoudig:

    1. CONCATENATE(F2:F4) combineert alle drie records van cellen met criteria in één string zoals deze:

      CherryPP bucketRunning out

      Dit is een zoeksleutel voor MATCH, of, met andere woorden, wat u zoekt in de tabel.

    2. A2:A24&C2:C24&D2:D24 een reeks voor de MATCH functie om in te kijken. Aangezien alle drie de criteria in drie aparte kolommen plaatsvinden, combineer je ze op deze manier als het ware:

      KersenKartonnen dienbladOp voorraad

      CherryFilm verpakkingOp voorraad

      CherryPP bucketRunning out

      enz.

    3. Het laatste argument in MATCH - 0 - maakt het mogelijk om de exacte match te vinden voor CherryPP bucketRunning out tussen al die rijen van gecombineerde kolommen. Zoals u kunt zien, is het in de derde rij.
    4. En dan doet INDEX zijn ding: hij haalt het record op uit de derde rij van kolom B.
    5. ArrayFormula wordt gebruikt om andere functies te laten werken met arrays.

    Tip. Als uw formule geen overeenkomst vindt, geeft ze een foutmelding. Om dat te vermijden, kunt u deze hele formule in IFERROR verpakken (maak dat het eerste argument) en als tweede argument invoeren wat u in een cel wilt zien in plaats van fouten:

    =IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Niet gevonden").

    Beter alternatief voor INDEX MATCH in Google Sheets - Meervoudige VLOOKUP-matches

    Welke opzoekfunctie u ook verkiest, VLOOKUP of INDEX MATCH, er is een beter alternatief voor beide.

    Multiple VLOOKUP Matches is een speciale add-on voor Google Sheets ontworpen om:

    • lookup zonder formules
    • lookup in alle richtingen
    • zoeken met meerdere voorwaarden voor verschillende soorten gegevens: tekst, nummers, data, tijd, enz.
    • meerdere wedstrijden ophalen, zoveel als je nodig hebt (mits er evenveel in je tabel staan natuurlijk)

    De interface is eenvoudig, zodat u niet hoeft te twijfelen of u alles wel goed doet:

    1. Selecteer bronbereik.
    2. Stel het aantal te retourneren overeenkomsten en kolommen in.
    3. Verfijn de voorwaarden met behulp van de vooraf gedefinieerde operatoren ( bevat, =, niet leeg , tussen enz.).

    Je zult ook in staat zijn om:

    • het resultaat bekijken
    • beslissen waar het te plaatsen
    • en hoe: als een formule of alleen waarden

    Mis deze kans niet om de add-on te controleren. Ga je gang en installeer hem vanaf de Google Workspace Marketplace. De tutorial pagina zal elke optie in detail uitleggen.

    We hebben ook een speciale instructievideo gemaakt:

    Tot ziens in de reacties hieronder of in het volgende artikel ;)

    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.