Excel INDEX MATCH vs. VLOOKUP - formeleksempler

  • Dele Denne
Michael Brown

Denne opplæringen viser hvordan du bruker INDEX og MATCH i Excel og hvordan det er bedre enn VLOOKUP.

I et par nyere artikler har vi gjort en god innsats for å forklare det grunnleggende om VLOOKUP-funksjonen til nybegynnere og gi mer komplekse VLOOKUP-formeleksempler til superbrukere. Og nå skal jeg prøve om ikke å få deg fra å bruke VLOOKUP, så i det minste vise deg en alternativ måte å gjøre et vertikalt oppslag i Excel på.

"Hva trenger jeg det til?" kan du lure på. Fordi VLOOKUP har mange begrensninger som kan hindre deg i å få ønsket resultat i mange situasjoner. På den annen side er INDEX MATCH-kombinasjonen mer fleksibel og har mange fantastiske funksjoner som gjør den overlegen VLOOKUP på mange måter.

    Excel INDEX og MATCH-funksjoner - det grunnleggende

    Siden målet med denne opplæringen er å demonstrere en alternativ måte å gjøre en vlookup i Excel ved å bruke en kombinasjon av INDEX- og MATCH-funksjoner, vil vi ikke dvele mye ved deres syntaks og bruker. Vi vil bare dekke det minimum som er nødvendig for å forstå den generelle ideen og deretter ta en grundig titt på formeleksempler som avslører alle fordelene ved å bruke INDEX MATCH i stedet for VLOOKUP.

    INDEX-funksjon - syntaks og bruk

    Excel INDEX-funksjonen returnerer en verdi i en matrise basert på rad- og kolonnenumrene du angir. Syntaksen til INDEX-funksjonen er enkel:

    ( kriterie1= område1) * ( kriterium2= område2), 0))}

    Merk. Dette er en matriseformel som må fullføres med Ctrl + Shift + Enter-snarveien.

    I eksempeltabellen nedenfor, forutsatt at du vil finne beløpet basert på 2 kriterier, Kunde og Produkt .

    Følgende INDEX MATCH-formel fungerer som en godbit:

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

    Hvor C2:C10 er området for å returnere en verdi fra, F1 er kriterie1, A2:A10 er området som skal sammenlignes med kriterie1, F2 er kriteriet 2, og B2:B10 er området som skal sammenlignes med kriterie2.

    Husk å angi formelen riktig ved å trykke Ctrl + Shift + Enter , og Excel vil automatisk omslutte den med krøllede parenteser som vist på skjermbildet:

    Hvis du heller ikke vil bruke matriseformler i regnearkene dine, legg til en INDEX-funksjon til i formel og fullfør den med et vanlig Enter-treff:

    Hvordan disse formlene fungerer

    Formlene bruker samme tilnærming som den grunnleggende INDEX MATCH-funksjonen som ser gjennom en enkelt kolonne. For å evaluere flere kriterier, oppretter du to eller flere matriser med TRUE og FALSE-verdier som representerer treff og ikke-treff for hvert enkelt kriterium, og multipliserer deretter de tilsvarende elementene i disse arrayene. Multiplikasjonsoperasjonen konverterer TRUE og FALSE til henholdsvis 1 og 0, og produserer en matrise der 1-er tilsvarer rader som samsvarer med alle kriteriene.MATCH-funksjonen med en oppslagsverdi på 1 finner den første "1" i matrisen og sender sin posisjon til INDEX, som returnerer en verdi i denne raden fra den angitte kolonnen.

    Ikke-matriseformelen er avhengig av evnen til INDEX-funksjonen til å håndtere arrays naturlig. Den andre INDEKSEN er konfigurert med 0 radnummer slik at den vil sende hele kolonnematrisen til MATCH.

    Dette er en forklaring på høyt nivå av formelens logikk. For fullstendige detaljer, se Excel INDEX MATCH med flere kriterier.

    Excel INDEX MATCH med AVERAGE, MAX, MIN

    Microsoft Excel har spesielle funksjoner for å finne en minimums-, maksimums- og gjennomsnittsverdi i en område. Men hva om du trenger å få en verdi fra en annen celle som er assosiert med disse verdiene? I dette tilfellet bruker du funksjonen MAX, MIN eller AVERAGE sammen med INDEX MATCH.

    INDEX MATCH med MAX

    For å finne den største verdien i kolonne D og returnere en verdi fra kolonne C i samme rad, bruk denne formelen:

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

    INDEX MATCH with MIN

    For å finne den minste verdien i kolonne D og hente en tilknyttet verdi fra kolonne C, bruk denne :

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

    INDEX MATCH med AVERAGE

    For å regne ut verdien nærmest gjennomsnittet i D2:D10 og få en tilsvarende verdi fra kolonne C, er dette formelen å bruke:

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

    Avhengig av hvordan dataene dine er organisert, oppgi enten 1 eller -1 til det tredje argumentet (match_type) tilMATCH-funksjonen:

    • Hvis oppslagskolonnen (kolonne D i vårt tilfelle) er sortert stigende , sett 1. Formelen vil beregne den største verdien som er mindre enn eller lik gjennomsnittsverdien.
    • Hvis oppslagskolonnen er sortert synkende , skriv inn -1. Formelen vil beregne den minste verdien som er større enn eller lik gjennomsnittsverdien.
    • Hvis oppslagsmatrisen inneholder en verdi nøyaktig lik med gjennomsnittet, vil du kan skrive inn 0 for eksakt samsvar. Ingen sortering er nødvendig.

    I vårt eksempel er populasjonene i kolonne D sortert i synkende rekkefølge, så vi bruker -1 for matchtype. Som et resultat får vi "Tokyo" siden befolkningen (13 189 000) er den nærmeste matchen som er større enn gjennomsnittet (12 269 006).

    Du kan være nysgjerrig på å vite at VLOOKUP kan også utføre slike beregninger, men som en matriseformel: VLOOKUP med AVERAGE, MAX, MIN.

    Bruk av INDEX MATCH med IFNA / IFERROR

    Som du sikkert har lagt merke til, hvis en INDEX MATCH formelen i Excel kan ikke finne en oppslagsverdi, den gir en #N/A-feil. Hvis du ønsker å erstatte standard feilnotasjon med noe mer meningsfylt, pakk INDEX MATCH-formelen inn i IFNA-funksjonen. For eksempel:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")

    Og nå, hvis noen legger inn en oppslagstabell som ikke finnes i oppslagsområdet, vil formelen eksplisitt informere brukeren om at ingen samsvar erfunnet:

    Hvis du vil fange opp alle feil, ikke bare #N/A, bruk IFERROR-funksjonen i stedet for IFNA:

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

    Vennligst husk at det i mange situasjoner kan være uklokt å skjule alle feil fordi de varsler deg om mulige feil i formelen din.

    Det er hvordan du bruker INDEX og MATCH i Excel. Jeg håper formeleksemplene våre vil være nyttige for deg og ser frem til å se deg på bloggen vår neste uke!

    Øvningsarbeidsbok for nedlasting

    Excel INDEX MATCH-eksempler (.xlsx-fil)

    INDEX(matrise, rad_nummer, [kolonne_nummer])

    Her er en veldig enkel forklaring av hver parameter:

    • matrise - et celleområde som du vil returnere en verdi fra.
    • radnummer - radnummeret i matrisen du vil returnere en verdi fra. Hvis det utelates, kreves kolonnenummeret.
    • kolonnenummer - kolonnenummeret i matrisen du vil returnere en verdi fra. Hvis utelatt, kreves rad_nummer.

    For mer informasjon, se Excel INDEX-funksjonen.

    Og her er et eksempel på INDEX-formelen i sin enkleste form:

    =INDEX(A1:C10,2,3)

    Formelen søker i cellene A1 til og med C10 og returnerer en verdi av cellen i 2. rad og 3. kolonne, dvs. celle C2.

    Veldig enkelt, ikke sant? Men når du arbeider med ekte data vil du nesten aldri vite hvilken rad og kolonne du vil ha, det er her MATCH-funksjonen kommer godt med.

    MATCH-funksjon - syntaks og bruk

    Excel MATCH-funksjonen søker etter en oppslagsverdi i et celleområde og returnerer den relative posisjonen til den verdien i området.

    Syntaksen til MATCH-funksjonen er som følger:

    MATCH(oppslagsverdi , lookup_array, [match_type])
    • lookup_value - tallet eller tekstverdien du leter etter.
    • lookup_array - et celleområde som er søkte.
    • match_type – spesifiserer om det skal returneres et eksakt samsvar eller det nærmeste samsvaret:
      • 1 eller utelatt - finner den største verdien som er mindre enn eller lik oppslagsverdien. Krever sortering av oppslagsmatrisen i stigende rekkefølge.
      • 0 - finner den første verdien som er nøyaktig lik oppslagsverdien. I INDEX / MATCH-kombinasjonen trenger du nesten alltid et eksakt samsvar, så du setter det tredje argumentet til MATCH-funksjonen til 0.
      • -1 - finner den minste verdien som er større enn eller lik oppslagsverdi. Krever sortering av oppslagsmatrisen i synkende rekkefølge.

    For eksempel, hvis området B1:B3 inneholder verdiene "New-York", "Paris", "London", formelen nedenfor returnerer tallet 3, fordi "London" er den tredje oppføringen i området:

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

    For mer informasjon, se Excel MATCH-funksjonen.

    På Ved første øyekast kan nytten av MATCH-funksjonen virke tvilsom. Hvem bryr seg om plasseringen til en verdi i et område? Det vi ønsker å vite er selve verdien.

    La meg minne deg på at den relative plasseringen av oppslagsverdien (dvs. rad- og kolonnenummer) er nøyaktig det du trenger for å angi radnummer og column_num argumenter for INDEX-funksjonen. Som du husker, kan Excel INDEX finne verdien ved overgangen til en gitt rad og kolonne, men den kan ikke bestemme nøyaktig hvilken rad og kolonne du vil ha.

    Hvordan bruke INDEX MATCH-funksjonen i Excel

    Nå som du vet det grunnleggende, tror jeg det har dethar allerede begynt å gi mening hvordan MATCH og INDEX fungerer sammen. I et nøtteskall finner INDEX oppslagsverdien etter kolonne- og radnummer, og MATCH gir disse tallene. Det var det!

    For vertikalt oppslag bruker du MATCH-funksjonen kun for å bestemme radnummeret og oppgi kolonneområdet direkte til INDEX:

    INDEX ( kolonne for å returnere en verdi fra, MATCH ( oppslagsverdi, kolonne å slå opp mot, 0))

    Har du fortsatt problemer med å finne ut av det? Det kan være lettere å forstå fra et eksempel. Anta at du har en liste over nasjonale hovedsteder og deres befolkning:

    For å finne befolkningen i en bestemt hovedstad, si hovedstaden i Japan, bruk følgende INDEX MATCH-formel:

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

    Nå, la oss analysere hva hver komponent i denne formelen faktisk gjør:

    • MATCH-funksjonen søker etter oppslagsverdien "Japan" i området A2: A10, og returnerer tallet 3, fordi "Japan" er tredje i oppslagsmatrisen.
    • Radnummeret går direkte til radnummer -argumentet til INDEX og instruerer det om å returnere en verdi fra det rad.

    Så, formelen ovenfor blir til en enkel INDEKS(C2:C,3) som sier å søke i cellene C2 til og med C10 og trekke verdien fra den tredje cellen i det området, dvs. C4 fordi vi begynner å telle fra den andre raden.

    Vil du ikke hardkode byen i formelen? Skriv den inn i en celle, si F1, forsyn cellenreferanse til MATCH, og du vil få en dynamisk oppslagsformel:

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

    Viktig merknad! Antall rader i array -argumentet til INDEX bør samsvare med antall rader i lookup_array -argumentet til MATCH, ellers vil formelen gi et feil resultat.

    Vent, vent... hvorfor ikke bruker vi ikke bare følgende Vlookup-formel? Hva er vitsen med å kaste bort tid på å prøve å finne ut av de mystiske vendingene i Excel MATCH INDEX?

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

    I dette tilfellet er det ingen vits i det hele tatt :) Dette enkle eksemplet er kun for demonstrasjonsformål, slik at du får en følelse av hvordan INDEX- og MATCH-funksjonene fungerer sammen. Andre eksempler som følger nedenfor vil vise deg den virkelige kraften til denne kombinasjonen som enkelt takler mange komplekse scenarier når VLOOKUP snubler.

    Tips:

    • I Excel 365 og Excel 2021 kan du kan bruke en mer moderne INDEX XMATCH-formel.
    • For Google Sheets, se formeleksempler med INDEX MATCH i denne artikkelen.

    INDEX MATCH vs. VLOOKUP

    Når Når de bestemmer hvilken funksjon som skal brukes for vertikale oppslag, er de fleste Excel-guruer enige om at INDEX MATCH er langt bedre enn VLOOKUP. Imidlertid er mange fortsatt med VLOOKUP, for det første fordi det er enklere og for det andre fordi de ikke fullt ut forstår alle fordelene ved å bruke INDEX MATCH-formelen i Excel. Uten en slik forståelse er ingen villige til å investere tiden sin for å læreen mer kompleks syntaks.

    Nedenfor vil jeg peke på de viktigste fordelene med MATCH INDEX fremfor VLOOKUP, og du bestemmer om det er et verdig tillegg til Excel-arsenalet ditt.

    4 hovedgrunner til å bruke INDEX MATCH i stedet for VLOOKUP

    1. Høyre til venstre oppslag. Som enhver utdannet bruker vet, kan ikke VLOOKUP se til venstre, noe som betyr at oppslagsverdien din alltid skal ligge i kolonnen lengst til venstre i Bordet. INDEX MATCH kan gjøre venstre oppslag med letthet! Følgende eksempel viser det i aksjon: Hvordan Vsøke opp en verdi til venstre i Excel.
    2. Sett inn eller slett kolonner på en sikker måte. VLOOKUP-formler blir ødelagte eller gir feil resultater når en ny kolonne er slettet fra eller lagt til en oppslagstabell fordi VLOOKUPs syntaks krever spesifikasjon av indeksnummeret til kolonnen du vil hente dataene fra. Når du legger til eller sletter kolonner, endres naturligvis indeksnummeret.

      Med INDEX MATCH angir du returkolonneområdet, ikke et indeksnummer. Som et resultat står du fritt til å sette inn og fjerne så mange kolonner du vil uten å bekymre deg for å oppdatere hver tilknyttede formel.

    3. Ingen grense for størrelsen til en oppslagsverdi. Når du bruker VLOOKUP-funksjonen, kan den totale lengden på oppslagskriteriene ikke overstige 255 tegn, ellers vil du ende opp med #VALUE ! feil. Så hvis datasettet ditt inneholder lange strenger, er INDEX MATCH den eneste som fungererløsning.
    4. Høyere prosesseringshastighet. Hvis tabellene dine er relativt små, vil det neppe være noen vesentlig forskjell i Excel-ytelsen. Men hvis regnearkene inneholder hundrevis eller tusenvis av rader, og følgelig hundrevis eller tusenvis av formler, vil MATCH INDEX fungere mye raskere enn VLOOKUP fordi Excel må behandle bare oppslags- og returkolonnene i stedet for hele tabellmatrisen.

      VLOOKUPs innvirkning på Excels ytelse kan være spesielt merkbar hvis arbeidsboken inneholder komplekse matriseformler som VLOOKUP og SUM. Poenget er at det å sjekke hver verdi i matrisen krever et separat kall til VLOOKUP-funksjonen. Så jo flere verdier matrisen inneholder og jo flere matriseformler du har i en arbeidsbok, jo tregere presterer Excel.

    Excel INDEX MATCH - formeleksempler

    Å kjenne til grunner til å lære MATCH INDEX-funksjonen, la oss gå til den mest interessante delen og se hvordan du kan bruke den teoretiske kunnskapen i praksis.

    INDEX MATCH-formel for å slå opp fra høyre til venstre

    Som allerede nevnt, VLOOKUP kan ikke se til venstre. Så med mindre oppslagsverdiene dine er kolonnen lengst til venstre, er det ingen sjanse for at en Vlookup-formel vil gi deg det resultatet du ønsker. INDEX MATCH-funksjonen i Excel er mer allsidig og bryr seg egentlig ikke om hvor oppslags- og returkolonnene er plassert.

    For dette eksempelet,vi legger til Rank-kolonnen til venstre for eksempeltabellen vår og prøver å finne ut hvordan den russiske hovedstaden, Moskva, rangerer når det gjelder befolkning.

    Med oppslagsverdien i G1, bruk følgende formel for å søke i C2:C10 og returner en tilsvarende verdi fra A2:A10:

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

    Tips. Hvis du planlegger å bruke INDEX MATCH-formelen for mer enn én celle, sørg for å låse begge områdene med absolutte cellereferanser (som $A$2:$A$10 og $C$2:4C$10) slik at de ikke blir forvrengt når kopiere formelen.

    INDEX MATCH MATCH for å søke i rader og kolonner

    I eksemplene ovenfor brukte vi INDEX MATCH som erstatning for klassisk VLOOKUP for å returnere en verdi fra en forhåndsdefinert én-kolonne område. Men hva om du trenger å slå opp i flere rader og kolonner? Med andre ord, hva om du vil utføre det såkalte matrise - eller toveis -oppslaget?

    Dette høres kanskje vanskelig ut, men formelen er veldig lik til den grunnleggende Excel INDEX MATCH-funksjonen, med bare én forskjell. Gjett hva?

    Bruk ganske enkelt to MATCH-funksjoner – en for å få et radnummer og den andre for å få et kolonnenummer. Og jeg gratulerer dere som har gjettet riktig :)

    INDEX (matrise, MATCH ( vlookup-verdi, kolonne å slå opp mot, 0), MATCH ( hlookup verdi, rad å slå opp mot, 0))

    Og nå, ta en titt på tabellen nedenfor og la oss bygge en INDEX MATCH MATCHformel for å finne befolkningen (i millioner) i et gitt land for et gitt år.

    Med mållandet i G1 (vlookup-verdi) og målåret i G2 (hlookup-verdi), har formelen denne formen :

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

    Hvordan denne formelen fungerer

    Når du trenger å forstå en kompleks Excel-formel, bryter du den ned i mindre deler og se hva hver enkelt funksjon gjør:

    MATCH(G1,A2:A11,0) – søker gjennom A2:A11 etter verdien i celle G1 ("Kina") og returnerer sin posisjon, som er 2.

    MATCH(G2,B1:D1,0)) – søker gjennom B1:D1 for å få posisjonen til verdien i celle G2 ("2015"), som er 3.

    Ovennevnte rad- og kolonnenummer går til de tilsvarende argumentene til INDEX-funksjonen:

    INDEX(B2:D11, 2, 3)

    Som et resultat får du en verdi i skjæringspunktet mellom 2. rad og 3. kolonne i området B2:D11, som er verdien i celle D3. Lett? Jepp!

    Excel INDEX MATCH for å slå opp flere kriterier

    Hvis du hadde en sjanse til å lese vår Excel VLOOKUP-opplæring, har du sannsynligvis allerede testet en formel til Vlookup med flere kriterier. En betydelig begrensning ved denne tilnærmingen er imidlertid nødvendigheten av å legge til en hjelpekolonne. Den gode nyheten er at Excels INDEX MATCH-funksjon kan slå opp med to eller flere kriterier også, uten å endre eller omstrukturere kildedataene dine!

    Her er den generiske INDEX MATCH-formelen med flere kriterier:

    {=INDEX( returområde, MATCH(1,

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.