INDEX MATCH MATCH MATCH în Excel pentru căutarea bidimensională

  • Imparte Asta
Michael Brown

Tutorialul prezintă câteva formule diferite pentru a efectua căutări bidimensionale în Excel. Doar uitați-vă prin alternative și alegeți preferatul dvs. :)

Atunci când căutați ceva în foile de calcul Excel, de cele mai multe ori căutați pe verticală în coloane sau pe orizontală în rânduri. Dar uneori trebuie să căutați atât pe rânduri, cât și pe coloane. Cu alte cuvinte, urmăriți să găsiți o valoare la intersecția dintre un anumit rând și o anumită coloană. Acest lucru se numește căutarea matricei (aka 2-dimensională sau Căutare în două direcții ), iar acest tutorial arată cum să o faci în 4 moduri diferite.

    Excel INDEX INDEX MATCH MATCH Formula MATCH

    Cea mai populară modalitate de a face o căutare bidirecțională în Excel este utilizarea funcției INDEX MATCH MATCH MATCH. Aceasta este o variație a formulei clasice INDEX MATCH la care se adaugă încă o funcție MATCH pentru a obține atât numărul rândului, cât și cel al coloanei:

    INDEX ( data_array , MATCH ( vlookup_valoare , lookup_column_range , 0), MATCH ( hlookup valoare , lookup_row_range , 0))

    Ca exemplu, să realizăm o formulă pentru a extrage din tabelul de mai jos populația unui anumit animal într-un anumit an. Pentru început, definim toate argumentele:

    • Rețea_de_date - B2:E4 (celule de date, fără a include anteturile de rând și de coloană)
    • Vlookup_valoare - H1 (animal țintă)
    • Gama_columna_de_consultare - A2:A4 (antetele rândurilor: nume de animale) - A3:A4
    • Hlookup_valoare - H2 (anul țintă)
    • Intervalul de căutare a rândurilor - B1:E1 (antetele coloanelor: ani)

    Puneți toate argumentele împreună și veți obține această formulă pentru căutarea în două direcții:

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

    Cum funcționează această formulă

    Deși poate părea un pic complexă la prima vedere, logica formulei este foarte simplă și ușor de înțeles. Funcția INDEX recuperează o valoare din matricea de date pe baza numerelor de rând și coloană, iar două funcții MATCH furnizează aceste numere:

    INDEX(B2:E4, număr_rând, număr_coloană)

    Aici, valorificăm capacitatea lui MATCH(lookup_value, lookup_array, [match_type]) de a returna un poziția relativă de lookup_value în lookup_array .

    Deci, pentru a obține numărul rândului, căutăm animalul de interes (H1) în anteturile rândurilor (A2:A4):

    MATCH(H1, A2:A4, 0)

    Pentru a obține numărul coloanei, căutăm anul țintă (H2) în anteturile coloanelor (B1:E1):

    MATCH(H2, B1:E1, 0)

    În ambele cazuri, căutăm o potrivire exactă prin stabilirea celui de-al treilea argument la 0.

    În acest exemplu, primul MATCH returnează 2, deoarece valoarea vlookup (Polar bear) se găsește în A3, care este a doua celulă din A2:A4. Al doilea MATCH returnează 3, deoarece valoarea hlookup (2000) se găsește în D1, care este a treia celulă din B1:E1.

    Având în vedere cele de mai sus, formula se reduce la:

    INDEX(B2:E4, 2, 3)

    Și returnează o valoare la intersecția dintre al doilea rând și a treia coloană din matricea de date B2:E4, care este o valoare din celula D3.

    Formula VLOOKUP și MATCH pentru căutarea în două direcții

    O altă modalitate de a efectua o căutare bidimensională în Excel este utilizarea unei combinații a funcțiilor VLOOKUP și MATCH:

    VLOOKUP( vlookup_valoare , tabel_array , MATCH( hlookup_valoare , lookup_row_range , 0), FALSE)

    Pentru exemplul nostru de tabel, formula are următoarea formă:

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

    Unde:

    • Tabel_array - A2:E4 (celule de date, inclusiv anteturile de rând)
    • Vlookup_valoare - H1 (animal țintă)
    • Hlookup_valoare - H2 (anul țintă)
    • Intervalul de căutare a rândurilor - A1:E1 (antetele coloanelor: ani)

    Cum funcționează această formulă

    Elementul central al formulei este funcția VLOOKUP configurată pentru potrivire exactă (ultimul argument setat la FALSE), care caută valoarea de căutare (H1) în prima coloană din matricea tabelului (A2:E4) și returnează o valoare dintr-o altă coloană din același rând. Pentru a determina din ce coloană să se returneze o valoare, se utilizează funcția MATCH care este, de asemenea, configurată pentru potrivire exactă (ultimul argument setat la 0):

    MATCH(H2, A1:E1, 0)

    MATCH caută valoarea din H2 în antetele coloanelor (A1:E1) și returnează poziția relativă a celulei găsite. În cazul nostru, anul țintă (2010) este găsit în E1, care este al cincilea în matricea de căutare. Deci, numărul 5 merge la col_index_num argument al VLOOKUP:

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

    VLOOKUP pornește de aici, găsește o potrivire exactă pentru valoarea sa de căutare din A2 și returnează o valoare din a cincea coloană din același rând, care este celula E2.

    Notă importantă! Pentru ca formula să funcționeze corect, tabel_array (A2:E4) din VLOOKUP și lookup_array din MATCH (A1:E1) trebuie să aibă același număr de coloane, în caz contrar numărul transmis de MATCH către col_index_num va fi incorectă (nu va corespunde poziției coloanei în tabel_array ).

    Funcția XLOOKUP pentru a căuta în rânduri și coloane

    Recent, Microsoft a introdus încă o funcție în Excel care este menită să înlocuiască toate funcțiile de căutare existente, cum ar fi VLOOKUP, HLOOKUP și INDEX MATCH. Printre altele, XLOOKUP poate căuta intersecția dintre un anumit rând și o anumită coloană:

    XLOOKUP( vlookup_valoare , vlookup_column_range , XLOOKUP( hlookup_valoare , hlookup_row_range , data_array ))

    Pentru eșantionul nostru de date, formula este următoarea:

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

    Notă. În prezent, XLOOKUP este o funcție beta, care este disponibilă numai pentru abonații Office 365 care fac parte din programul Office Insiders.

    Cum funcționează această formulă

    Formula utilizează capacitatea lui XLOOKUP de a returna un întreg rând sau o întreagă coloană. Funcția interioară caută anul țintă în rândul de antet și returnează toate valorile pentru acel an (în acest exemplu, pentru anul 1980). Aceste valori merg în coloana return_array argument al XLOOKUP exterior:

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

    Funcția exterioară XLOOKUP caută animalul țintă în antetele coloanelor și returnează valoarea din return_array în aceeași poziție.

    Formula SUMPRODUCT pentru căutarea în două direcții

    Funcția SUMPRODUCT este ca un cuțit elvețian în Excel - poate face atât de multe lucruri dincolo de scopul său desemnat, în special atunci când vine vorba de evaluarea mai multor criterii.

    Pentru a căuta două criterii, în rânduri și coloane, utilizați această formulă generică:

    SUMPRODUCT( vlookup_column_range = vlookup_valoare ) * ( hlookup_row_range = hlookup_valoare ), data_array )

    Pentru a efectua o căutare în două direcții în setul nostru de date, formula este următoarea:

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

    Sintaxa de mai jos va funcționa de asemenea:

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

    Cum funcționează această formulă

    În centrul formulei, comparăm două valori de căutare cu anteturile de rând și de coloană (animalul țintă din H1 cu toate numele animalelor din A2:A4 și anul țintă din H2 cu toți anii din B1:E1):

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

    Rezultă 2 tablouri de valori TRUE și FALSE, unde TRUE reprezintă corespondențe:

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

    Operația de înmulțire transformă valorile TRUE și FALSE în 1 și 0 și produce o matrice bidimensională de 4 coloane și 3 rânduri (rândurile sunt separate prin punct și virgulă, iar fiecare coloană de date prin virgulă):

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

    Funcția SUMPRODUCT înmulțește elementele din matricea de mai sus cu elementele din B2:E4 aflate în aceleași poziții:

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

    Și pentru că înmulțirea cu zero dă zero, supraviețuiește doar elementul corespunzător lui 1 din prima matrice:

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

    În cele din urmă, SUMPRODUCT însumează elementele tabloului rezultat și returnează o valoare de 2000.

    Notă. Dacă tabelul dvs. are mai multe rânduri sau/și anteturi de coloană cu același nume, matricea finală va conține mai mult de un număr diferit de zero, iar toate aceste numere vor fi adunate. Ca rezultat, veți obține o sumă a valorilor care îndeplinesc ambele criterii. Acesta este lucrul care face ca formula SUMPRODUCT să fie diferită de INDEX MATCH MATCH și VLOOKUP, care returnează prima potrivire găsită.

    Căutarea matricei cu intervale numite (Intersecție explicită)

    Un alt mod uimitor de simplu de a face o căutare de matrice în Excel este utilizarea intervalelor numite. Iată cum:

    Partea 1: Numiți coloane și rânduri

    Cel mai rapid mod de a numi fiecare rând și fiecare coloană din tabelul dumneavoastră este următorul:

    1. Selectați întregul tabel (A1:E4 în cazul nostru).
    2. Pe Formule în fila Nume definite grup, faceți clic pe Creați din selecție sau apăsați comanda rapidă Ctrl + Shift + F3.
    3. În Crearea de nume din selecție caseta de dialog, selectați Rândul de sus și Coloana din stânga, și faceți clic pe OK.

    Acest lucru creează automat nume pe baza antetelor de rând și de coloană. Cu toate acestea, există câteva avertismente:

    • Dacă antetele coloanelor și/sau rândurilor sunt numere sau conțin caractere specifice care nu sunt permise în denumirile Excel, numele pentru astfel de coloane și rânduri nu vor fi create. Pentru a vedea o listă a numelor create, deschideți Managerul de nume ( Ctrl + F3 ). Dacă lipsesc unele nume, definiți-le manual, așa cum se explică în Cum se numește un interval în Excel.
    • Dacă unele dintre antetele de rând sau de coloană conțin spații, spațiile vor fi înlocuite cu sublinieri, de exemplu, Polar_bear .

    Pentru tabelul nostru de exemplu, Excel a creat automat doar numele rândurilor. Numele coloanelor trebuie create manual, deoarece titlurile coloanelor sunt numere. Pentru a depăși acest lucru, puteți pur și simplu să prefațați numerele cu sublinieri, de exemplu _1990 .

    Ca rezultat, avem următoarele intervale denumite:

    Partea 2: Faceți o formulă de căutare a matricei

    Pentru a extrage o valoare de la intersecția dintre un anumit rând și o anumită coloană, trebuie doar să introduceți una dintre următoarele formule generice într-o celulă goală:

    = nume_ rând nume_coloană

    Sau viceversa:

    = nume_coloană nume_ rând

    De exemplu, pentru a obține populația de balene albastre în 1990, formula este simplă:

    =Blue_whale _1990

    Dacă cineva are nevoie de instrucțiuni mai detaliate, pașii următori vă vor ghida prin acest proces:

    1. Într-o celulă în care doriți să apară rezultatul, introduceți semnul de egalitate (=).
    2. Începeți să tastați numele rândului țintă, de exemplu, Balena_albastră După ce ați tastat câteva caractere, Excel va afișa toate numele existente care se potrivesc cu cele introduse de dvs. Faceți dublu clic pe numele dorit pentru a-l introduce în formula dvs:
    3. După numele rândului, introduceți un spațiu , care funcționează ca operator de intersecție în acest caz.
    4. Introduceți numele coloanei țintă ( _1990 în cazul nostru).
    5. De îndată ce sunt introduse atât numele rândului, cât și cel al coloanei, Excel va evidenția rândul și coloana corespunzătoare din tabel, iar tu vei apăsa Enter pentru a finaliza formula:

    Căutarea matricei dvs. este gata, iar captura de ecran de mai jos arată rezultatul:

    Iată cum se caută în rânduri și coloane în Excel. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!

    Descărcări disponibile

    Exemplu de registru de lucru de căutare 2-dimensională

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.