INDEX MATCH i Google Sheets - en anden måde at søge vertikalt på

  • Del Dette
Michael Brown

Når du har brug for at finde data i dit ark, der svarer til en bestemt nøglepost, er det normalt Google Sheets VLOOKUP, du vender dig til. Men sådan er det: VLOOKUP slår dig med begrænsninger næsten med det samme. Derfor er det bedre at øge ressourcerne til opgaven ved at lære INDEX MATCH.

INDEX MATCH i Google Sheets er en kombination af to funktioner: INDEX og MATCH. Når de bruges sammen, fungerer de som et bedre alternativ til Google Sheets VLOOKUP. Lad os finde ud af deres muligheder sammen i dette blogindlæg. Men først vil jeg gerne give dig en hurtig rundvisning af deres egne roller i regneark.

    Google Sheets MATCH-funktion

    Jeg vil gerne starte med Google Sheets MATCH, fordi det er virkelig simpelt. Det scanner dine data for en bestemt værdi og returnerer dens position:

    =MATCH(search_key, range, [search_type])
    • search_key er den plade, du leder efter.
    • rækkevidde er enten en række eller en kolonne, der skal kigges i. Krævet.

      Bemærk. MATCH accepterer kun endimensionale arrays: enten række eller kolonne.

    • search_type er valgfri og angiver, om matchet skal være nøjagtigt eller tilnærmelsesvis. Hvis den udelades, er den som standard 1:
      • 1 betyder, at intervallet sorteres i stigende orden. Funktionen henter den største værdi, der er mindre end eller lig med din search_key .
      • 0 får funktionen til at søge efter det nøjagtige match, hvis dit område ikke er sorteret.
      • -1 antyder, at posterne rangordnes ved hjælp af faldende sortering. I dette tilfælde får funktionen den mindste værdi, der er større end eller lig med din search_key .

    Her er et eksempel: For at få en position for et bestemt bær på listen over alle bær skal jeg bruge følgende MATCH-formel i mit Google Sheets:

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

    Google Sheets INDEX-funktion

    Mens MATCH viser, hvor du skal lede efter din værdi (dens placering i intervallet), henter Google Sheets INDEX-funktionen selve værdien baseret på dens række- og kolonneforskydninger:

    =INDEX(reference, [række], [kolonne])
    • reference er det område, du skal kigge i. Krævet.
    • række er antallet af rækker, der skal forskydes fra den allerførste celle i intervallet. Valgfrit, 0 hvis udeladt.
    • kolonne , ligesom række , er antallet af offset-kolonner. Også valgfrit, også 0, hvis udeladt.

    Hvis du angiver begge valgfrie argumenter (række og kolonne), returnerer Google Sheets INDEX en post fra en destinationscelle:

    =INDEX(A1:C10, 7, 1)

    Hvis du springer et af disse argumenter over, får funktionen hele rækken eller kolonnen i overensstemmelse hermed:

    =INDEX(A1:C10, 7)

    Sådan bruger du INDEX MATCH i Google Sheets - eksempler på formler

    Når INDEX og MATCH bruges sammen i regneark, er de på deres højeste. De kan helt sikkert erstatte Google Sheets VLOOKUP og hente den ønskede post fra en tabel baseret på din nøgleværdi.

    Opbyg din første INDEX MATCH-formel til Google Sheets

    Lad os antage, at du gerne vil have oplysninger om bestanden af tranebær fra den samme tabel, som jeg brugte ovenfor. Jeg har blot byttet kolonne B og C (du finder ud af hvorfor lidt senere).

    1. Nu er alle bær opført i kolonne C. Google Sheets MATCH-funktionen hjælper dig med at finde den nøjagtige række med tranebæret: 8

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

    2. Sæt hele denne MATCH-formel til en række argument i INDEX-funktionen:

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

      Denne returnerer hele rækken med tranebær i den.

    3. Men da du kun har brug for lageroplysningerne, skal du også angive nummeret på opslagskolonnen: 3

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

    4. Voila!

    5. Du kan gå videre og opgive den sidste kolonneindikator ( 2 ). Du har slet ikke brug for den, hvis du kun bruger opslagskolonnen ( B1:B10 ) i stedet for hele tabellen ( A1:C10 ) som det første argument:

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

      Tip. En mere praktisk måde at kontrollere tilgængeligheden af forskellige bær på ville være at placere dem på en rulleliste ( E2 ), og henvis din MATCH-funktion til cellen med denne liste:

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

      Når du vælger bær, ændres den tilhørende værdi i overensstemmelse hermed:

    Hvorfor INDEX MATCH i Google Sheets er bedre end VLOOKUP

    Du ved allerede, at Google Sheets INDEX MATCH søger din værdi i en tabel og returnerer en anden relateret post fra den samme række. Og du ved, at Google Sheets VLOOKUP gør nøjagtig det samme. Så hvorfor gøre sig den ulejlighed?

    Sagen er den, INDEX MATCH har nogle store fordele over VLOOKUP:

    1. Opslag på venstre side er muligt Jeg ændrede tidligere kolonneplaceringerne for at illustrere dette: INDEX MATCH-funktionen i Google Sheets kan og vil kigge til venstre for søgespalten. VLOOKUP søger altid i den allerførste kolonne i intervallet og leder efter kampe til højre for denne kolonne - ellers får den kun #N/A-fejl:

    2. Ingen rodede referencer, når du tilføjer nye kolonner og flytter eksisterende kolonner. Hvis du tilføjer eller flytter kolonner, vil INDEX MATCH afspejle ændringerne automatisk uden at blande sig i resultatet. Da du bruger kolonnehenvisninger, justeres de øjeblikkeligt af Google Sheets:

      Prøv bare at gøre dette med VLOOKUP: det kræver ordrenummeret i stedet for cellehenvisninger til en opslagskolonne. Du vil derfor bare ende med at få den forkerte værdi, fordi en anden kolonne tager den samme plads - kolonne 2 i mit eksempel:

    3. Overvejer tekstcase når det er nødvendigt (mere om dette nedenfor).
    4. Kan bruges til vertikale opslag baseret på flere kriterier.

    Jeg vil opfordre dig til at se nærmere på de to sidste punkter nedenfor.

    V-lookup med hensyn til store og små bogstaver med INDEX MATCH i Google Sheets

    INDEX MATCH er en god idé, når det drejer sig om hensynet til hhv. store og små bogstaver.

    Hvis vi antager, at alle bær sælges på to måder - løst (vejet ved disken) og pakket i kasser - er der to forekomster af hvert bær, der er skrevet i forskellige tilfælde i listen, og som hver har deres eget ID, der også varierer i de forskellige tilfælde:

    Så hvordan kan du slå op i lageroplysningerne om et bær, der sælges på en bestemt måde? VLOOKUP returnerer det første navn, det finder, uanset hvad der er tilfældet.

    Heldigvis kan INDEX MATCH til Google Sheets gøre det korrekt. Du skal blot bruge en ekstra funktion - FIND eller EXACT.

    Eksempel 1. FIND for case-sensitive Vlookup

    FIND er en funktion, der tager hensyn til store og små bogstaver i Google Sheets, hvilket gør den fantastisk til vertikale opslag, der tager hensyn til store og små bogstaver:

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

    Lad os se, hvad der sker i denne formel:

    1. FIND gennemsøger kolonne C ( C2:C19 ) til posten fra E2 ( kirsebær Når den er fundet, "markerer" formlen den pågældende celle med et tal - 1 .
    2. MATCH søger efter dette mærke - 1 - i samme kolonne ( C ) og overdrager nummeret på dens række til INDEX.
    3. INDEX kommer ned til den pågældende række i kolonne B ( B2:B19 ) og henter den ønskede post til dig.
    4. Når du er færdig med at opbygge formlen, skal du trykke på Ctrl+Shift+Enter for at tilføje ArrayFormula i begyndelsen. Det er nødvendigt, for uden det vil FIND ikke kunne søge i arrays (i mere end én celle). Eller du kan skrive ' ArrayFormula ' fra dit tastatur.

    Eksempel 2. EXACT for case-sensitive Vlookup

    Hvis du erstatter FIND med EXACT, vil sidstnævnte søge efter poster med nøjagtigt de samme tegn, herunder deres store og små bogstaver.

    Den eneste forskel er, at EXACT "markerer" et match med TRUE i stedet for antal 1 Det første argument for MATCH skal derfor være TRUE :

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

    Google Sheets INDEX MATCH med flere kriterier

    Hvad hvis der er flere betingelser, som du gerne vil hente posten på baggrund af?

    Lad os tjekke prisen på den kirsebær der sælges i PP-spande og er allerede løber ud :

    Jeg har arrangeret alle kriterierne i rullelisterne i kolonne F. Og det er Google Sheets INDEX MATCH, der understøtter flere kriterier, ikke VLOOKUP. Her er den formel, du skal bruge:

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

    Ingen panik! :) Logikken er faktisk ret enkel:

    1. SAMMENKÆDNING(F2:F4) kombinerer alle tre poster fra celler med kriterier i én streng på denne måde:

      CherryPP bucketRunning out

      Dette er en search_key for MATCH, eller med andre ord, hvad du leder efter i tabellen.

    2. A2:A24&C2:C24&D2:D24 udgør en rækkevidde som MATCH-funktionen skal kigge i. Da alle tre kriterier findes i tre separate kolonner, kombinerer du dem på denne måde på en måde:

      KirsebærKartonbakkePå lager

      CherryFilm emballageUdelukket på lager

      CherryPP bucketRunning out

      osv.

    3. Det sidste argument i MATCH - 0 - gør det muligt at finde det nøjagtige match for CherryPP bucketRunning out blandt alle disse rækker af kombinerede kolonner. Som du kan se, er det i den 3. række.
    4. Og så gør INDEX sit arbejde: den henter posten fra den tredje række i kolonne B.
    5. ArrayFormula bruges til at give andre funktioner mulighed for at arbejde med arrays.

    Tip. Hvis din formel ikke finder et match, returnerer den en fejl. For at undgå dette kan du pakke hele formlen ind i IFERROR (gøre det til det første argument) og indtaste det, du ønsker at se i en celle i stedet for fejl som andet argument:

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

    Bedre alternativ til INDEX MATCH i Google Sheets - flere VLOOKUP-matches

    Uanset hvilken opslagsfunktion du foretrækker, VLOOKUP eller INDEX MATCH, er der et bedre alternativ til dem begge.

    Multiple VLOOKUP Matches er en særlig tilføjelse til Google Sheets, der er designet til at:

    • opslag uden formler
    • opslag i alle retninger
    • søgning ved hjælp af flere betingelser for forskellige datatyper: tekst, tal, datoer, tid, osv.
    • hente flere tændstikker, så mange som du har brug for (forudsat at der er lige så mange af dem i dit bord, naturligvis)

    Grænsefladen er ligetil, så du behøver ikke at være i tvivl om, hvorvidt du gør alting korrekt:

    1. Vælg kildeområde.
    2. Angiv antallet af resultater og kolonner, der skal returneres.
    3. Finjuster betingelserne ved hjælp af de foruddefinerede operatorer ( indeholder, =, ikke tom , mellem osv.).

    Du vil også være i stand til at:

    • få vist et eksempel på resultatet
    • beslutte, hvor det skal placeres
    • og hvordan: som en formel eller blot værdier

    Gå ikke glip af denne mulighed for at tjekke tilføjelsen. Gå i gang og installer den fra Google Workspace Marketplace. På siden med vejledninger forklares alle muligheder i detaljer.

    Vi har også udarbejdet en særlig instruktionsvideo:

    Vi ses i kommentarerne nedenfor eller i den næste artikel ;)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.