INDEX MATCH MATCH yn Excel foar twadiminsjonale opsykje

  • Diel Dit
Michael Brown

De tutorial lit in pear ferskillende formules sjen om twadiminsjonale opsykjen yn Excel út te fieren. Sjoch gewoan troch de alternativen en kies jo favorite :)

As jo ​​sykje nei wat yn jo Excel-spreadsheets, sykje jo meastentiids fertikaal yn kolommen of horizontaal yn rigen. Mar soms moatte jo oer sawol rigen as kolommen sjen. Mei oare wurden, jo wolle in wearde fine op 'e krusing fan in bepaalde rige en kolom. Dit hjit matrix-opsykje (alias 2-diminsjoneel of 2-wei opsykje ), en dizze tutorial lit sjen hoe't jo it op 4 ferskillende manieren dwaan kinne.

    Excel INDEX MATCH MATCH formule

    De populêrste manier om in twa-wize opsykjen yn Excel te dwaan is troch INDEX MATCH MATCH te brûken. Dit is in fariaasje fan de klassike INDEX MATCH-formule wêryn jo noch ien MATCH-funksje taheakje om sawol de rige- as kolomnûmers te krijen:

    INDEX ( data_array, MATCH ( vlookup_value<2)>, lookup_column_range , 0), MATCH ( hlookup value , lookup_row_range , 0))

    Litte wy as foarbyld in formule meitsje om in populaasje te lûken fan in bepaald bist yn in bepaald jier út de tabel hjirûnder. Om te begjinnen definiearje wy alle arguminten:

    • Data_array - B2:E4 (gegevenssellen, net ynklusyf rige- en kolomkoppen)
    • Vlookup_value - H1 (doeldier)
    • Lookup_column_range - A2:A4 (rige kopteksten: dierenammen) -A3:A4
    • Hlookup_value - H2 (doeljier)
    • Lookup_row_range - B1:E1 (kolomkoppen: jierren)

    Set alle arguminten byinoar en jo sille dizze formule krije foar twa-wei sykjen:

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

    Hoe't dizze formule wurket

    Hoewol't it der in bytsje útsjen kin kompleks op it earste each, de logika fan de formule is echt rjochtlinige en maklik te begripen. De funksje INDEX hellet in wearde op fan 'e gegevensarray basearre op 'e rige- en kolomnûmers, en twa MATCH-funksjes leverje dizze nûmers:

    INDEX(B2:E4, row_num, column_num)

    Hjir brûke wy de mooglikheid fan MATCH(lookup_value, lookup_array, [match_type]) om in relative posysje fan lookup_value werom te jaan yn lookup_array .

    Dus, om it rigenûmer te krijen, sykje wy foar it bist fan belang (H1) oer de rigekoppen (A2:A4):

    MATCH(H1, A2:A4, 0)

    Om it kolomnûmer te krijen, sykje wy nei it doeljier (H2) oer de kolomkoppen (B1:E1):

    MATCH(H2, B1:E1, 0)

    Yn beide gefallen sykje wy nei krekte oerienkomst troch it 3e argumint op 0 yn te stellen.

    Yn dit foarbyld jout de earste MATCH werom 2 om't ús vlookup-wearde (Polar bear) is fûn yn A3, dat is de 2e sel yn A2: A4. De twadde MATCH jout 3 om't de hlookup-wearde (2000) fûn wurdt yn D1, dat is de 3e sel yn B1:E1.

    Sjoen it boppesteande fermindert de formule nei:

    INDEX(B2:E4, 2, 3)

    En jou in wearde werom op 'e krusing fan' e 2e rige en 3e kolom yn 'e gegevensarray B2: E4, dat is inwearde yn 'e sel D3.

    VLOOKUP en MATCH formule foar 2-way lookup

    In oare manier om in twadiminsjonale opsykjen yn Excel te dwaan is troch in kombinaasje fan VLOOKUP en MATCH funksjes te brûken:

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

    Foar ús foarbyldtabel , nimt de formule de folgjende foarm oan:

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

    Wêr:

    • Tabel_array - A2:E4 (gegevenssellen ynklusyf rigekoppen)
    • Vlookup_value - H1 (doeldier)
    • Hlookup_value - H2 (doeljier)
    • Opsykje_rige_berik - A1: E1 (kolomkoppen: jierren)

    Hoe't dizze formule wurket

    De kearn fan 'e formule is de VLOOKUP-funksje ynsteld foar eksakte oerienkomst (it lêste argumint ynsteld op FALSE), dy't siket nei de opsykwearde (H1) yn 'e earste kolom fan' e tabel array (A2: E4) en jout in wearde út in oare kolom yn deselde rige. Om te bepalen út hokker kolom jo in wearde weromjaan moatte, brûke jo de MATCH-funksje dy't ek ynsteld is foar eksakte oerienkomst (it lêste argumint ynsteld op 0):

    MATCH(H2, A1:E1, 0)

    MATCH siket nei de wearde yn H2 oer de kolomkoppen (A1: E1) en jout de relative posysje fan 'e fûne sel werom. Yn ús gefal is it doeljier (2010) te finen yn E1, dy't 5e is yn 'e opsykarray. Dus, it getal 5 giet nei it col_index_num argumint fan VLOOKUP:

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

    VLOOKUP nimt it dêrwei, fynt ineksakte oerienkomst foar syn opsykwearde yn A2 en jout in wearde werom út 'e 5e kolom yn deselde rige, dat is de sel E2.

    Wichtige opmerking! Foar de formule om goed te wurkjen, moatte tabel_array (A2: E4) fan VLOOKUP en lookup_array fan MATCH (A1: E1) itselde oantal kolommen hawwe, oars moat it oantal troch MATCH trochjûn wurde nei col_index_num sil ferkeard wêze (sil net oerienkomme mei de posysje fan de kolom yn tabel_array ).

    XLOOKUP-funksje om yn rigen en kolommen te sjen

    Koartlyn hat Microsoft noch ien funksje yn Excel yntrodusearre dy't bedoeld is om alle besteande opsykfunksjes te ferfangen lykas VLOOKUP, HLOOKUP en INDEX MATCH. XLOOKUP kin ûnder oare sjen nei de krusing fan in spesifike rige en kolom:

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

    Foar ús foarbyldgegevensset giet de formule as folget:

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

    Opmerking. Op it stuit is XLOOKUP in betafunksje, dy't allinich beskikber is foar Office 365-abonnees dy't diel útmeitsje fan it Office Insiders-programma.

    Hoe't dizze formule wurket

    De formule brûkt de mooglikheid fan XLOOKUP om in werom te jaan hiele rige of kolom. De binnenfunksje siket nei it doeljier yn 'e koptekst en jout alle wearden foar dat jier werom (yn dit foarbyld foar it jier 1980). Dy wearden geane nei it return_array argumint fan 'e bûtensteXLOOKUP:

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

    De bûtenste XLOOKUP-funksje siket nei it doeldier oer de kolomkoppen en jout de wearde werom op deselde posysje fan 'e return_array.

    SUMPRODUCT-formule foar twa -way lookup

    De SUMPRODUCT-funksje is as in Switsersk mes yn Excel - it kin safolle dingen dwaan bûten it oanwiisde doel, benammen as it giet om it evaluearjen fan meardere kritearia.

    Om twa op te sykjen kritearia, yn rigen en kolommen, brûk dizze generyske formule:

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

    Om in 2-wei opsykjen yn ús dataset út te fieren, giet de formule as folget:

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

    De ûndersteande syntaksis sil ek wurkje:

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

    Hoe't dizze formule wurket

    Yn it hert fan 'e formule fergelykje wy twa opsykwearden mei de rige- en kolomkoppen (it doeldier yn H1 tsjin alle bisten nammen yn A2:A4 en it doeljier yn H2 tsjin alle jierren yn B1:E1):

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

    This res ults yn 2 arrays fan TRUE en FALSE wearden, wêrby't TRUE's wedstriden fertsjintwurdigje:

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

    De fermannichfâldigje operaasje twingt de TRUE en FALSE wearden yn 1's en 0's en produseart in twadiminsjonale array fan 4 kolommen en 3 rigen (rigen wurde skieden troch puntkomma's en elke kolom fan gegevens troch in komma):

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

    De SUMPRODUCT-funksjes fermannichfâldigje de eleminten fan 'e boppesteande array mei de items fanB2:E4 op deselde posysjes:

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

    En om't fermannichfâldigjen mei nul nul jout, bliuwt allinich it item dat oerienkomt mei 1 yn 'e earste array:

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

    Uteinlik foeget SUMPRODUCT de eleminten fan 'e resultearjende array op en jout in wearde fan 2000 werom.

    Opmerking. As jo ​​tabel hat mear as ien rige of / en kolomkoppen mei deselde namme, de definitive array sil befetsje mear as ien nûmer oars as nul, en al dy nûmers sille wurde opteld. As resultaat krije jo in som fan wearden dy't oan beide kritearia foldwaan. It is wat de SUMPRODUCT-formule oars makket fan INDEX MATCH MATCH en VLOOKUP, dy't de earste fûn wedstriid werombringe.

    Matrix-opsykje mei neamde berik (eksplisite krusing)

    Ien mear verbazingwekkend ienfâldige manier om te dwaan in matrix-opsykje yn Excel is troch it brûken fan neamde berik. Hjir is hoe:

    Diel 1: Namme kolommen en rigen

    De fluchste manier om elke rige en elke kolom yn jo tabel te neamen is dit:

    1. Selektearje de hiele tabel (A1:E4 yn ús gefal).
    2. Op de Formules ljepper, yn de Defined Names groep, klik op Meitsje út Seleksje of druk op de Ctrl + Shift + F3 fluchtoets.
    3. Selektearje yn it dialoochfinster Nammen oanmeitsje út seleksje Top rige en Links kolom, en klik op OK.

    Dit makket automatysk nammen oan op basis fan de rige- en kolomkoppen. D'r binne lykwols in pear caveats:

    • As jo ​​kolom en/ofRigekoppen binne sifers of befetsje spesifike tekens dy't net tastien binne yn Excel-nammen, de nammen foar sokke kolommen en rigen wurde net oanmakke. Om in list mei oanmakke nammen te sjen, iepenje de Name Manager (Ctrl + F3). As guon nammen ûntbrekke, definiearje se dan mei de hân lykas útlein yn Hoe kinne jo in berik yn Excel neame.
    • As guon fan jo rige- of kolomkoppen spaasjes befetsje, wurde de spaasjes ferfongen troch ûnderstreken, bygelyks Polar_bear .

    Foar ús foarbyldtabel makke Excel automatysk allinich de rigenammen. De kolomnammen moatte mei de hân oanmakke wurde om't de kolomkoppen nûmers binne. Om dit te oerwinnen, kinne jo de nûmers gewoan foarôfgean mei ûnderstreken, lykas _1990 .

    As resultaat hawwe wy de folgjende neamde berik:

    Diel 2 : Meitsje in matrix-opsykformule

    Om in wearde te lûken op it krúspunt fan in opjûne rige en kolom, typ gewoan ien fan 'e folgjende generyske formules yn in lege sel:

    = rige_namme column_name

    Of oarsom:

    = column_name row_name

    Bygelyks om de populaasje fan blauwe walfisken yn 1990 te krijen , de formule is sa ienfâldich as:

    =Blue_whale _1990

    As immen mear detaillearre ynstruksjes nedich hat, sille de folgjende stappen jo troch it proses liede:

    1. Yn in sel wêr jo wolle dat it resultaat ferskynt, typ dan it lykweardigensteken (=).
    2. Begjin mei it typen fan de namme fan de doelrige, sis, Blauwe_wal . Efteras jo in pear tekens typt hawwe, sil Excel alle besteande nammen werjaan dy't oerienkomme mei jo ynfier. Dûbelklikje op de winske namme om it yn jo formule yn te fieren:
    3. Typ nei de rigenamme in spaasje , dy't wurket as de krusingsoperator yn dit gefal.
    4. Fier de doelkolomnamme yn ( _1990 yn ús gefal).
    5. Sadree't sawol de rige- as kolomnammen ynfierd binne, sil Excel de oerienkommende rige en kolom yn jo tabel markearje, en jo drukke op Enter om de formule te foltôgjen:

    Jo matrix-sykjen is dien, en de ûndersteande skermôfbylding lit it resultaat sjen:

    Dat is hoe't jo opsykje yn rigen en kolommen yn Excel. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!

    Beskikbere downloads

    2-diminsjoneel opsykje foarbyldwurkboek

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.