INDEX MATCH MATCH i Excel for todimensjonalt oppslag

  • Dele Denne
Michael Brown

Opplæringen viser noen forskjellige formler for å utføre todimensjonale oppslag i Excel. Bare se gjennom alternativene og velg din favoritt :)

Når du søker etter noe i Excel-regnearkene dine, vil du mesteparten av tiden slå opp vertikalt i kolonner eller horisontalt i rader. Men noen ganger må du se på tvers av både rader og kolonner. Du har med andre ord som mål å finne en verdi i skjæringspunktet mellom en bestemt rad og kolonne. Dette kalles matriseoppslag (aka 2-dimensjonalt eller 2-veis oppslag ), og denne opplæringen viser hvordan du gjør det på 4 forskjellige måter.

    Excel INDEX MATCH MATCH formel

    Den mest populære måten å gjøre et toveis oppslag i Excel er å bruke INDEX MATCH MATCH. Dette er en variant av den klassiske INDEX MATCH-formelen som du legger til en MATCH-funksjon til for å få både rad- og kolonnenummer:

    INDEX ( datamatrise, MATCH ( vlookup_value<2)>, oppslagskolonneområde , 0), MATCH ( hoppslagsverdi , oppslagsradområde , 0))

    La oss som et eksempel lage en formel for å trekke en populasjon av et bestemt dyr i et gitt år fra tabellen nedenfor. Til å begynne med definerer vi alle argumentene:

    • Data_array - B2:E4 (dataceller, ikke inkludert rad- og kolonneoverskrifter)
    • Vlookup_value - H1 (måldyr)
    • Lookup_column_range - A2:A4 (radoverskrifter: dyrenavn) -A3:A4
    • Hlookup_value - H2 (målår)
    • Opslagsradområde - B1:E1 (kolonneoverskrifter: år)

    Sett alle argumentene sammen og du vil få denne formelen for toveis oppslag:

    =INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Hvordan denne formelen fungerer

    Selv om den kan se litt ut kompleks ved første øyekast, formelens logikk er veldig grei og lett å forstå. INDEX-funksjonen henter en verdi fra datamatrisen basert på rad- og kolonnenumrene, og to MATCH-funksjoner leverer disse tallene:

    INDEX(B2:E4, row_num, column_num)

    Her utnytter vi muligheten til MATCH(lookup_value, lookup_array, [match_type]) for å returnere en relativ posisjon av lookup_value i lookup_array .

    Så, for å få radnummeret, søker vi for dyret av interesse (H1) på tvers av radoverskriftene (A2:A4):

    MATCH(H1, A2:A4, 0)

    For å få kolonnenummeret søker vi etter målåret (H2) på tvers av kolonneoverskriftene (B1:E1):

    MATCH(H2, B1:E1, 0)

    I begge tilfeller ser vi etter eksakt samsvar ved å sette det tredje argumentet til 0.

    I dette eksemplet returnerer den første MATCH 2 fordi vlookup-verdien vår (isbjørn) finnes i A3, som er den andre cellen i A2:A4. Den andre MATCH returnerer 3 fordi hlookup-verdien (2000) er funnet i D1, som er den tredje cellen i B1:E1.

    Gi ovenstående reduseres formelen til:

    INDEX(B2:E4, 2, 3)

    Og returner en verdi i skjæringspunktet mellom 2. rad og 3. kolonne i datamatrisen B2:E4, som er enverdi i cellen D3.

    VLOOKUP og MATCH formel for 2-veis oppslag

    En annen måte å gjøre et todimensjonalt oppslag i Excel er å bruke en kombinasjon av VLOOKUP og MATCH funksjoner:

    VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    For vår eksempeltabell , har formelen følgende form:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    Hvor:

    • Tabell_array - A2:E4 (dataceller inkludert radoverskrifter)
    • Vlookup_value - H1 (måldyr)
    • Hlookup_value - H2 (målår)
    • Opslagsradområde - A1:E1 (kolonneoverskrifter: år)

    Slik fungerer denne formelen

    Kjernen i formelen er VLOOKUP-funksjonen konfigurert for eksakt samsvar (det siste argumentet satt til FALSE), som søker etter oppslagsverdien (H1) i den første kolonnen i tabellmatrisen (A2:E4) og returnerer en verdi fra en annen kolonne i samme rad. For å bestemme hvilken kolonne du skal returnere en verdi fra, bruker du MATCH-funksjonen som også er konfigurert for eksakt samsvar (det siste argumentet satt til 0):

    MATCH(H2, A1:E1, 0)

    MATCH søker etter verdien i H2 over kolonneoverskriftene (A1:E1) og returnerer den relative posisjonen til den funnet cellen. I vårt tilfelle er målåret (2010) funnet i E1, som er 5. i oppslagsmatrisen. Så tallet 5 går til col_index_num -argumentet til VLOOKUP:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    VLOOKUP tar det derfra, finner eneksakt samsvar for oppslagsverdien i A2 og returnerer en verdi fra den 5. kolonnen i samme rad, som er cellen E2.

    Viktig merknad! For at formelen skal fungere riktig, må tabellmatrise (A2:E4) av VLOOKUP og oppslagsmatrise av MATCH (A1:E1) ha samme antall kolonner, ellers må tallet som sendes av MATCH til col_index_num vil være feil (vil ikke samsvare med kolonnens posisjon i table_array ).

    XLOOKUP-funksjon for å se i rader og kolonner

    Microsoft har nylig introdusert en funksjon til i Excel som er ment å erstatte alle eksisterende oppslagsfunksjoner som VLOOKUP, HLOOKUP og INDEX MATCH. XLOOKUP kan blant annet se på skjæringspunktet mellom en bestemt rad og kolonne:

    XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))

    For vårt eksempeldatasett er formelen som følger:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Merk. Foreløpig er XLOOKUP en betafunksjon, som kun er tilgjengelig for Office 365-abonnenter som er en del av Office Insiders-programmet.

    Hvordan denne formelen fungerer

    Formelen bruker muligheten til XLOOKUP for å returnere en hele raden eller kolonnen. Den indre funksjonen søker etter målåret i overskriftsraden og returnerer alle verdiene for det året (i dette eksemplet for år 1980). Disse verdiene går til return_array -argumentet til den ytreXLOOKUP:

    XLOOKUP(H1, A2:A4, {22000;25000;700}))

    Den ytre XLOOKUP-funksjonen søker etter måldyret på tvers av kolonneoverskriftene og returnerer verdien i samme posisjon fra return_array.

    SUMPRODUCT-formel for to -way lookup

    SUMPRODUCT-funksjonen er som en sveitsisk kniv i Excel – den kan gjøre så mange ting utover det angitte formålet, spesielt når det gjelder å evaluere flere kriterier.

    For å slå opp to kriterier, i rader og kolonner, bruk denne generiske formelen:

    SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )

    For å utføre et 2-veis oppslag i datasettet vårt, går formelen som følger:

    =SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Syntaksen nedenfor vil også fungere:

    =SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Hvordan denne formelen fungerer

    I hjertet av formelen sammenligner vi to oppslagsverdier mot rad- og kolonneoverskriftene (måldyret i H1 mot alle dyr navn i A2:A4 og målår i H2 mot alle år i B1:E1):

    (A2:A4=H1) * (B1:E1=H2)

    This res resultater i 2 matriser med TRUE og FALSE-verdier, der TRUE-er representerer samsvar:

    {FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}

    Multiplikasjonsoperasjonen tvinger SANN- og FALSE-verdiene til 1- og 0-er og produserer en todimensjonal matrise på 4 kolonner og 3 rader (rader er atskilt med semikolon og hver kolonne med data med komma):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    SUMPRODUCT-funksjonene multipliserer elementene i arrayen ovenfor med elementene iB2:E4 i samme posisjoner:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    Og fordi multiplisering med null gir null, overlever bare elementet som tilsvarer 1 i den første matrisen:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Til slutt legger SUMPRODUCT sammen elementene i den resulterende matrisen og returnerer en verdi på 2000.

    Merk. Hvis tabellen din har mer enn én rad eller/og kolonneoverskrifter med samme navn, vil den endelige matrisen inneholde mer enn ett tall annet enn null, og alle disse tallene vil bli lagt sammen. Som et resultat vil du få en sum av verdier som oppfyller begge kriteriene. Det er det som gjør SUMPRODUCT-formelen forskjellig fra INDEX MATCH MATCH og VLOOKUP, som returnerer det første funnet samsvaret.

    Matriseoppslag med navngitte områder (eksplisitt skjæringspunkt)

    En mer utrolig enkel måte å gjøre et matriseoppslag i Excel er ved å bruke navngitte områder. Slik gjør du det:

    Del 1: Navngi kolonner og rader

    Den raskeste måten å navngi hver rad og hver kolonne i tabellen på er denne:

    1. Velg hele tabellen (A1:E4 i vårt tilfelle).
    2. På kategorien Formler , i Definerte navn -gruppen, klikker du Opprett fra utvalg eller trykk på Ctrl + Shift + F3-snarveien.
    3. I dialogboksen Opprett navn fra utvalg velger du øverste rad og venstre kolonne, og klikk OK.

    Dette oppretter automatisk navn basert på rad- og kolonneoverskriftene. Det er imidlertid et par forbehold:

    • Hvis kolonnen din og/ellerradoverskrifter er tall eller inneholder spesifikke tegn som ikke er tillatt i Excel-navn, navnene for slike kolonner og rader vil ikke bli opprettet. For å se en liste over opprettede navn, åpne Navnebehandling ( Ctrl + F3 ). Hvis noen navn mangler, definer dem manuelt som forklart i Hvordan navngi et område i Excel.
    • Hvis noen av rad- eller kolonneoverskriftene dine inneholder mellomrom, vil mellomrommene bli erstattet med understreking, for eksempel Polar_bear .

    For eksempeltabellen vår opprettet Excel automatisk bare radnavnene. Kolonnenavnene må opprettes manuelt fordi kolonneoverskriftene er tall. For å overvinne dette kan du ganske enkelt innlede tallene med understreker, som _1990 .

    Som resultat har vi følgende navngitte områder:

    Del 2 : Lag en matriseoppslagsformel

    For å trekke en verdi i skjæringspunktet mellom en gitt rad og kolonne, skriv inn en av følgende generiske formler i en tom celle:

    = radnavn kolonnenavn

    Eller omvendt:

    = kolonnenavn radnavn

    For eksempel for å få bestanden av blåhval i 1990 , formelen er så enkel som:

    =Blue_whale _1990

    Hvis noen trenger mer detaljerte instruksjoner, vil følgende trinn lede deg gjennom prosessen:

    1. I en celle der du vil at resultatet skal vises, skriv inn likhetstegnet (=).
    2. Begynn å skrive navnet på målraden, for eksempel Blåhval . Etterdu har skrevet inn et par tegn, vil Excel vise alle eksisterende navn som samsvarer med inndataene dine. Dobbeltklikk på ønsket navn for å angi det i formelen:
    3. Etter radnavnet skriver du inn et mellomrom , som fungerer som kryssoperatoren i dette tilfellet.
    4. Skriv inn navnet på målkolonnen ( _1990 i vårt tilfelle).
    5. Så snart både rad- og kolonnenavnene er angitt, vil Excel utheve den tilsvarende raden og kolonnen i tabellen din, og du trykker Enter for å fullføre formelen:

    Matriseoppslaget ditt er gjort, og skjermbildet nedenfor viser resultatet:

    Slik slår du opp i rader og kolonner i Excel. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Tilgjengelige nedlastinger

    2-dimensjonal oppslagseksempel arbeidsbok

    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.