INDEX MATCH MATCH MATCH i Excel til todimensionale opslag

  • Del Dette
Michael Brown

Tutorialen viser et par forskellige formler til at udføre todimensionelle opslag i Excel. Kig gennem alternativerne og vælg din favorit :)

Når du søger efter noget i dine Excel-regneark, vil du for det meste kigge lodret opad i kolonner eller vandret i rækker. Men nogle gange skal du kigge på tværs af både rækker og kolonner. Med andre ord, du søger at finde en værdi i skæringspunktet mellem en bestemt række og kolonne. Dette kaldes matrixopslag (også kendt som 2-dimensional eller 2-vejsopslag ), og denne vejledning viser, hvordan man gør det på 4 forskellige måder.

    Excel INDEX MATCH MATCH MATCH-formel

    Den mest populære måde at lave et tovejsopslag i Excel på er ved hjælp af INDEX MATCH MATCH. Dette er en variation af den klassiske INDEX MATCH-formel, hvor du tilføjer endnu en MATCH-funktion for at få både række- og kolonnetal:

    INDEX ( data_array , MATCH ( vlookup_værdi , lookup_column_range , 0), MATCH ( hlookup-værdi , lookup_row_range , 0))

    Lad os som eksempel lave en formel til at trække en population af et bestemt dyr i et givet år ud fra nedenstående tabel. Til at begynde med definerer vi alle argumenterne:

    • Data_array - B2:E4 (dataceller, ekskl. række- og kolonneoverskrifter)
    • Vlookup_værdi - H1 (måldyr)
    • Opslag_kolonne_række - A2:A4 (rækkeoverskrifter: dyrenavne) - A3:A4
    • Hlookup_værdi - H2 (målår)
    • Opslag_række_område - B1:E1 (kolonneoverskrifter: år)

    Hvis du lægger alle argumenterne sammen, får du denne formel for tovejs-opslag:

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

    Sådan fungerer denne formel

    Selv om det ved første øjekast kan se en smule kompliceret ud, er formlens logik i virkeligheden ligetil og let at forstå. INDEX-funktionen henter en værdi fra datamatrixen baseret på række- og kolonnumrene, og to MATCH-funktioner leverer disse tal:

    INDEX(B2:E4, row_num, column_num)

    Her udnytter vi muligheden for at MATCH(lookup_value, lookup_array, [match_type]) til at returnere en relativ position opslagsværdi opslagsbatteri .

    Så for at få frem til rækkens nummer søger vi efter det dyr, vi er interesseret i (H1), på tværs af rækkeoverskrifterne (A2:A4):

    MATCH(H1, A2:A4, 0)

    For at få kolonnenummeret søger vi efter målåret (H2) på tværs af kolonneoverskrifterne (B1:E1):

    MATCH(H2, B1:E1, 0)

    I begge tilfælde søger vi efter nøjagtig overensstemmelse ved at sætte det tredje argument til 0.

    I dette eksempel returnerer den første MATCH 2, fordi vores vlookup-værdi (Isbjørn) findes i A3, som er den anden celle i A2:A4. Den anden MATCH returnerer 3, fordi hlookup-værdien (2000) findes i D1, som er den tredje celle i B1:E1.

    På baggrund af ovenstående kan formlen reduceres til:

    INDEX(B2:E4, 2, 3)

    Og returnerer en værdi i skæringspunktet mellem den 2. række og 3. kolonne i datamatrixen B2:E4, som er en værdi i celle D3.

    VLOOKUP- og MATCH-formler til 2-vejsopslag

    En anden måde at lave et todimensionelt opslag i Excel på er ved at bruge en kombination af VLOOKUP- og MATCH-funktionerne:

    VLOOKUP( vlookup_værdi , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    For vores eksempeltabel har formlen følgende formular:

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

    Hvor:

    • Tabel_array - A2:E4 (dataceller, herunder rækkeoverskrifter)
    • Vlookup_værdi - H1 (måldyr)
    • Hlookup_værdi - H2 (målår)
    • Opslag_række_område - A1:E1 (kolonneoverskrifter: år)

    Sådan fungerer denne formel

    Kernen i formlen er VLOOKUP-funktionen, der er konfigureret til nøjagtigt match (det sidste argument er sat til FALSE), som søger efter opslagsværdien (H1) i den første kolonne i tabelmatrixen (A2:E4) og returnerer en værdi fra en anden kolonne i samme række. For at bestemme, hvilken kolonne der skal returneres en værdi fra, bruger du MATCH-funktionen, der også er konfigureret til nøjagtigt match (det sidste argument er sat til 0):

    MATCH(H2, A1:E1, 0)

    MATCH søger efter værdien i H2 på tværs af kolonneoverskrifterne (A1:E1) og returnerer den relative position for den fundne celle. I vores tilfælde er målåret (2010) fundet i E1, som er nummer 5 i opslagsrækken. Så nummer 5 går til col_index_num argumentet i VLOOKUP:

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

    VLOOKUP tager den derfra, finder et nøjagtigt match for opslagsværdien i A2 og returnerer en værdi fra den femte kolonne i samme række, som er celle E2.

    Vigtig bemærkning: For at formlen skal fungere korrekt, table_array (A2:E4) i VLOOKUP og opslagsbatteri af MATCH (A1:E1) skal have det samme antal kolonner, ellers skal det antal, som MATCH har overført til col_index_num vil være forkert (vil ikke svare til kolonnens position i table_array ).

    XLOOKUP-funktion til at kigge i rækker og kolonner

    Microsoft har for nylig introduceret endnu en funktion i Excel, som skal erstatte alle eksisterende opslagsfunktioner som VLOOKUP, HLOOKUP og INDEX MATCH. XLOOKUP kan blandt andet se på skæringspunktet mellem en bestemt række og kolonne:

    XLOOKUP( vlookup_værdi , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))

    For vores eksempeldatasæt lyder formlen som følger:

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

    Bemærk: XLOOKUP er i øjeblikket en beta-funktion, som kun er tilgængelig for Office 365-abonnenter, der er en del af Office Insiders-programmet.

    Sådan fungerer denne formel

    Formlen bruger XLOOKUP's evne til at returnere en hel række eller kolonne. Den indre funktion søger efter målåret i overskriftsrækken og returnerer alle værdierne for det pågældende år (i dette eksempel for året 1980). Disse værdier går til return_array argumentet i den ydre XLOOKUP:

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

    Den ydre XLOOKUP-funktion søger efter måldyret på tværs af kolonneoverskrifterne og returnerer værdien i samme position fra return_array.

    SUMPRODUCT-formel for tovejsopslag

    SUMPRODUCT-funktionen er som en schweizerkniv i Excel - den kan gøre så mange ting ud over sit oprindelige formål, især når det drejer sig om at evaluere flere kriterier.

    Hvis du vil slå to kriterier op i rækker og kolonner, skal du bruge denne generiske formel:

    SUMPRODUKT( vlookup_column_range = vlookup_værdi ) * ( hlookup_row_range = hlookup_value ), data_array )

    For at udføre et 2-vejs opslag i vores datasæt er formlen som følger:

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

    Nedenstående syntaks fungerer også:

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

    Sådan fungerer denne formel

    I formlens kerne sammenligner vi to opslagsværdier med række- og kolonneoverskrifterne (måldyret i H1 med alle dyrenavne i A2:A4 og målåret i H2 med alle årstal i B1:E1):

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

    Dette resulterer i 2 arrays med værdierne TRUE og FALSE, hvor TRUE's repræsenterer matches:

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

    Multiplikationsoperationen tvinger værdierne TRUE og FALSE til at blive 1'er og 0'er og producerer et todimensionalt array med 4 kolonner og 3 rækker (rækker er adskilt af semikolon og hver datakolonne af et komma):

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

    SUMPRODUCT-funktionerne multiplicerer elementerne i ovenstående array med elementerne i B2:E4 i de samme positioner:

    {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 da multiplikation med nul giver nul, er det kun det element, der svarer til 1 i det første array, der overlever:

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

    Til sidst lægger SUMPRODUCT elementerne i det resulterende array sammen og returnerer værdien 2000.

    Bemærk: Hvis din tabel har mere end én række og/eller kolonneoverskrifter med samme navn, vil det endelige array indeholde mere end ét andet tal end nul, og alle disse tal vil blive lagt sammen. Som resultat får du en sum af værdier, der opfylder begge kriterier. Det er det, der gør SUMPRODUCT-formlen forskellig fra INDEX MATCH MATCH og VLOOKUP, som returnerer det første fundne match.

    Matrixopslag med navngivne intervaller (eksplicit krydsning)

    En anden utrolig enkel måde at lave et matrixopslag i Excel på er ved at bruge navngivne områder. Sådan gør du:

    Del 1: Navngiv kolonner og rækker

    Den hurtigste måde at navngive hver række og hver kolonne i din tabel på er således:

    1. Vælg hele tabellen (A1:E4 i vores tilfælde).
    2. På den Formler under fanen, i fanen Definerede navne gruppe, klik på Opret fra valg eller tryk på genvejen Ctrl + Shift + F3.
    3. I den Opret navne fra valg dialogboksen, skal du vælge Øverste række og Venstre kolonne, og klik på OK.

    Dette skaber automatisk navne baseret på række- og kolonneoverskrifterne. Der er dog et par forbehold:

    • Hvis dine kolonne- og/eller rækkeoverskrifter er tal eller indeholder specifikke tegn, der ikke er tilladt i Excel-navne, vil navnene for sådanne kolonner og rækker ikke blive oprettet. Hvis du vil se en liste over oprettede navne, skal du åbne Navnehåndtering ( Ctrl + F3 ). Hvis nogle navne mangler, skal du definere dem manuelt som forklaret i Sådan navngiver du et område i Excel.
    • Hvis nogle af dine række- eller kolonneoverskrifter indeholder mellemrum, erstattes disse mellemrum f.eks. med understregninger, Polar_bjørn .

    I vores eksempeltabel oprettede Excel kun rækkernes navne automatisk. Kolonnens navne skal oprettes manuelt, fordi kolonneoverskrifterne er tal. For at løse dette problem kan du blot sætte understregninger foran tallene, som f.eks. _1990 .

    Resultatet er følgende navngivne intervaller:

    Del 2: Lav en matrix-opslagsformel

    Hvis du vil trække en værdi i skæringspunktet mellem en given række og kolonne, skal du blot skrive en af følgende generiske formler i en tom celle:

    = row_name kolonne_navn

    Eller omvendt:

    = kolonne_navn row_name

    For at få fat i bestanden af blåhvaler i 1990 er formlen f.eks. så enkel som:

    =Blue_whale _1990

    Hvis du har brug for mere detaljerede instruktioner, kan du gennemgå processen i de følgende trin:

    1. Indtast lighedstegnet (=) i en celle, hvor du vil have resultatet vist, i en celle, hvor du ønsker, at resultatet skal vises.
    2. Begynd at skrive navnet på den ønskede række, f.eks, Blue_whale Når du har indtastet et par tegn, viser Excel alle eksisterende navne, der passer til dit input. Dobbeltklik på det ønskede navn for at indtaste det i din formel:
    3. Efter navnet på rækken skal du skrive et rum , som fungerer som den skæringspunktoperatør i dette tilfælde.
    4. Indtast navnet på målkolonnen ( _1990 i vores tilfælde).
    5. Så snart både række- og kolonnenavnene er indtastet, markerer Excel den tilsvarende række og kolonne i din tabel, og du trykker på Enter for at færdiggøre formlen:

    Dit matrixopslag er udført, og nedenstående skærmbillede viser resultatet:

    Sådan slår du op i rækker og kolonner i Excel. Tak for din læsning, og jeg håber at se dig på vores blog i næste uge!

    Tilgængelige downloads

    Prøvearbejdsbog til 2-dimensionale opslag

    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.