INDEX MATCH MATCH у Excel для двухмернага пошуку

  • Падзяліцца Гэтым
Michael Brown

Падручнік дэманструе некалькі розных формул для выканання двухмернага пошуку ў Excel. Проста праглядзіце альтэрнатывы і выберыце свой любімы :)

Шукаючы што-небудзь у вашых электронных табліцах Excel, часцей за ўсё вы шукаеце вертыкальна ўверх у слупках або гарызантальна ў радках. Але часам трэба праглядаць і радкі, і слупкі. Іншымі словамі, вы імкнецеся знайсці значэнне на скрыжаванні пэўнага радка і слупка. Гэта называецца матрычны пошук (ён жа 2-мерны або 2-баковы пошук ), і гэты падручнік паказвае, як зрабіць гэта 4 рознымі спосабамі.

    Excel INDEX MATCH MATCH формула

    Самы папулярны спосаб выканання двухбаковага пошуку ў Excel - гэта выкарыстанне INDEX MATCH MATCH. Гэта разнавіднасць класічнай формулы INDEX MATCH, да якой вы дадаеце яшчэ адну функцыю MATCH, каб атрымаць нумары радка і слупка:

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

    У якасці прыкладу давайце створым формулу для выцягвання сукупнасці пэўнай жывёлы ў дадзеным годзе з табліцы ніжэй. Для пачатку мы вызначаем усе аргументы:

    • Масіў_даных - B2:E4 (ячэйкі даных, не уключаючы загалоўкі радкоў і слупкоў)
    • Vlookup_value - H1 (мэтавая жывёла)
    • Дыяпазон_слупкоў_прагляду - A2:A4 (загалоўкі радкоў: назвы жывёл) ​​-A3:A4
    • Hlookup_value - H2 (мэтавы год)
    • Lookup_row_range - B1:E1 (загалоўкі слупкоў: гады)

    Складзіце ўсе аргументы разам, і вы атрымаеце наступную формулу для двухбаковага пошуку:

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

    Як гэта формула працуе

    Хоць гэта можа выглядаць крыху складаная на першы погляд, логіка формулы сапраўды простая і лёгкая для разумення. Функцыя INDEX атрымлівае значэнне з масіва даных на аснове нумароў радкоў і слупкоў, а дзве функцыі MATCH забяспечваюць гэтыя лічбы:

    INDEX(B2:E4, row_num, column_num)

    Тут мы выкарыстоўваем магчымасць MATCH(lookup_value, lookup_array, [match_type]), каб вярнуць адносную пазіцыю lookup_value у lookup_array .

    Такім чынам, каб атрымаць нумар радка, мы шукаем для цікавай жывёлы (H1) у загалоўках радкоў (A2:A4):

    MATCH(H1, A2:A4, 0)

    Каб атрымаць нумар слупка, мы шукаем мэтавы год (H2) у загалоўках слупкоў (B1:E1):

    MATCH(H2, B1:E1, 0)

    У абодвух выпадках мы шукаем дакладнае супадзенне, задаючы 3-му аргументу значэнне 0.

    У гэтым прыкладзе першае СУПАДЗЕННЕ вяртае 2, таму што наша значэнне ВПР (Белы мядзведзь) знаходзіцца ў A3, якая з'яўляецца 2-й ячэйкай у A2:A4. Другі MATCH вяртае 3, таму што значэнне hlookup (2000) знаходзіцца ў D1, якая з'яўляецца 3-й ячэйкай у B1:E1.

    Улічваючы вышэйсказанае, формула памяншаецца да:

    INDEX(B2:E4, 2, 3)

    І вяртае значэнне на скрыжаванні 2-га радка і 3-га слупка ў масіве даных B2:E4, якое з'яўляеццазначэнне ў ячэйцы D3.

    Формула VLOOKUP і MATCH для двухбаковага пошуку

    Іншы спосаб выканання двухмернага пошуку ў Excel - выкарыстанне камбінацыі функцый VLOOKUP і MATCH:

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

    Для нашага ўзору табліцы , формула прымае наступную форму:

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

    Дзе:

    • Масіў_табліцы - A2:E4 (ячэйкі даных, уключаючы загалоўкі радкоў)
    • Vlookup_value - H1 (мэтавая жывёла)
    • Hlookup_value - H2 (мэтавы год)
    • Lookup_row_range - A1:E1 (загалоўкі слупкоў: гады)

    Як працуе гэтая формула

    Ядром формулы з'яўляецца функцыя VLOOKUP, настроеная на дакладнае супадзенне (апошні аргумент усталявана ў FALSE), які шукае значэнне пошуку (H1) у першым слупку масіва табліцы (A2:E4) і вяртае значэнне з іншага слупка ў тым жа радку. Каб вызначыць, з якога слупка вярнуць значэнне, вы выкарыстоўваеце функцыю MATCH, якая таксама сканфігуравана для дакладнага супадзення (апошні аргумент усталяваны ў 0):

    MATCH(H2, A1:E1, 0)

    MATCH шукае значэнне ў H2 праз загалоўкі слупкоў (A1:E1) і вяртае адноснае становішча знойдзенай ячэйкі. У нашым выпадку мэтавы год (2010) знаходзіцца ў E1, які з'яўляецца 5-м у масіве пошуку. Такім чынам, лічба 5 ідзе ў аргумент col_index_num VLOOKUP:

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

    VLOOKUP бярэ яго адтуль, знаходзіцьдакладнае супадзенне значэння пошуку ў A2 і вяртае значэнне з 5-га слупка ў тым жа радку, які з'яўляецца ячэйкай E2.

    Важная заўвага! Каб формула працавала карэктна, таблічны_масіў (A2:E4) VLOOKUP і масіў_прагляду MATCH (A1:E1) павінны мець аднолькавую колькасць слупкоў, у адваротным выпадку лік, перададзены MATCH у col_index_num будзе няправільным (не будзе адпавядаць пазіцыі слупка ў table_array ).

    Функцыя XLOOKUP для пошуку ў радках і слупках

    Нядаўна Microsoft прадставіла яшчэ адну функцыю ў Excel, якая павінна замяніць усе існуючыя функцыі пошуку, такія як VLOOKUP, HLOOKUP і INDEX MATCH. Сярод іншага, XLOOKUP можа праглядаць скрыжаванне пэўнага радка і слупка:

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

    Для нашага ўзору набору даных формула выглядае наступным чынам:

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

    Заўвага. У цяперашні час XLOOKUP з'яўляецца бэта-функцыяй, якая даступная толькі для падпісчыкаў Office 365, якія ўдзельнічаюць у праграме Office Insiders.

    Як працуе гэтая формула

    Формула выкарыстоўвае здольнасць XLOOKUP вяртаць ўвесь радок або слупок. Унутраная функцыя шукае мэтавы год у радку загалоўка і вяртае ўсе значэнні для гэтага года (у гэтым прыкладзе для 1980 года). Гэтыя значэнні ідуць у аргумент return_array вонкавагаXLOOKUP:

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

    Знешняя функцыя XLOOKUP шукае мэтавую жывёлу ў загалоўках слупкоў і вяртае значэнне ў той жа пазіцыі з return_array.

    Формула SUMPRODUCT для двух -way lookup

    Функцыя SUMPRODUCT падобная на швейцарскі нож у Excel - яна можа рабіць так шмат рэчаў, якія не ўваходзяць у яе прызначанае прызначэнне, асабліва калі справа даходзіць да ацэнкі некалькіх крытэрыяў.

    Каб знайсці два крытэрыяў у радках і слупках выкарыстоўвайце наступную агульную формулу:

    SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), масіў_даных )

    Каб выканаць двухбаковы пошук у нашым наборы даных, формула выглядае наступным чынам:

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

    Прыведзены ніжэй сінтаксіс таксама будзе працаваць:

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

    Як працуе гэтая формула

    У аснове формулы мы параўноўваем два пошукавыя значэнні з загалоўкамі радкоў і слупкоў (мэтавая жывёла ў H1 з усімі жывёламі імёны ў A2:A4 і мэтавы год у H2 супраць усіх гадоў у B1:E1):

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

    Гэты рэз. вынікі ў 2 масівах значэнняў TRUE і FALSE, дзе TRUE прадстаўляюць супадзенні:

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

    Аперацыя множання ператварае значэнні TRUE і FALSE у 1 і 0 і стварае двухмерны масіў з 4 слупкі і 3 радкі (радкі аддзяляюцца кропкай з коскі, а кожны слупок даных - коскай):

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

    Функцыя SUMPRODUCT памнажае элементы вышэйзгаданага масіва на элементыB2:E4 у тых жа пазіцыях:

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

    А таму што множанне на нуль дае нуль, выжывае толькі элемент, які адпавядае 1 у першым масіве:

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

    Нарэшце, SUMPRODUCT складае элементы атрыманага масіва і вяртае значэнне 2000.

    Заўвага. Калі ваша табліца мае больш чым адзін радок і/або загалоўкі слупкоў з аднолькавым імем, канчатковы масіў будзе ўтрымліваць больш за адзін лік, акрамя нуля, і ўсе гэтыя лікі будуць складзены. У выніку вы атрымаеце суму значэнняў, якія адпавядаюць абодвум крытэрам. Гэта тое, што адрознівае формулу SUMPRODUCT ад INDEX MATCH MATCH і VLOOKUP, якія вяртаюць першае знойдзенае супадзенне.

    Пошук у матрыцы з названымі дыяпазонамі (відавочнае перасячэнне)

    Яшчэ адзін дзіўна просты спосаб зрабіць пошук матрыцы ў Excel ажыццяўляецца з дапамогай найменных дыяпазонаў. Вось як:

    Частка 1: Назавіце слупкі і радкі

    Самы хуткі спосаб назваць кожны радок і кожны слупок у вашай табліцы гэта:

    1. Абярыце ўсю табліцу (у нашым выпадку A1:E4).
    2. На ўкладцы Формулы ў групе Вызначаныя імёны націсніце Стварыць з выбару або націсніце спалучэнне клавіш Ctrl + Shift + F3.
    3. У дыялогавым акне Стварыць імёны з выбару выберыце Верхні радок і Злева слупок і націсніце OK.

    Гэта аўтаматычна стварае імёны на аснове загалоўкаў радкоў і слупкоў. Аднак ёсць некалькі агаворак:

    • Калі ваш слупок і/абозагалоўкі радкоў з'яўляюцца лічбамі або ўтрымліваюць пэўныя сімвалы, якія не дапускаюцца ў імёнах Excel, імёны для такіх слупкоў і радкоў стварацца не будуць. Каб убачыць спіс створаных імёнаў, адкрыйце дыспетчар імёнаў ( Ctrl + F3 ). Калі некаторыя імёны адсутнічаюць, вызначце іх уручную, як апісана ў раздзеле "Як назваць дыяпазон у Excel".
    • Калі некаторыя загалоўкі вашых радкоў або слупкоў утрымліваюць прабелы, прабелы будуць заменены сімваламі падкрэслівання, напрыклад, Polar_bear .

    Для нашага ўзору табліцы Excel аўтаматычна стварыў толькі імёны радкоў. Імёны слупкоў трэба ствараць уручную, таму што загалоўкі слупкоў з'яўляюцца лічбамі. Каб пераадолець гэта, вы можаце проста паставіць перад лічбамі сімвалы падкрэслівання, напрыклад _1990 .

    У выніку мы маем наступныя дыяпазоны з назвамі:

    Частка 2 : Стварыце формулу пошуку матрыцы

    Каб атрымаць значэнне на скрыжаванні зададзенага радка і слупка, проста ўвядзіце адну з наступных агульных формул у пустую ячэйку:

    = назва_радка column_name

    Ці наадварот:

    = column_name row_name

    Напрыклад, каб атрымаць папуляцыю сініх кітоў у 1990 г. , формула такая простая, як:

    =Blue_whale _1990

    Калі камусьці патрэбны больш падрабязныя інструкцыі, наступныя крокі правядуць вас праз працэс:

    1. У ячэйцы там, дзе вы хочаце, каб з'явіўся вынік, увядзіце знак роўнасці (=).
    2. Пачніце ўводзіць імя мэтавага радка, скажам, Blue_whale . Паслявы ўвялі пару сімвалаў, Excel адлюструе ўсе існуючыя імёны, якія адпавядаюць вашаму ўводу. Двойчы пстрыкніце патрэбнае імя, каб увесці яго ў сваю формулу:
    3. Пасля імя радка ўвядзіце прабел , які працуе як аператар перасячэння ў гэты выпадак.
    4. Увядзіце імя мэтавага слупка ( _1990 у нашым выпадку).
    5. Як толькі будуць уведзены назвы радка і слупка, Excel выдзеліць адпаведны радок і слупок у вашай табліцы, і вы націсніце Enter, каб завяршыць формулу:

    Пошук у вашай матрыцы завершаны, і на скрыншоце ніжэй паказаны вынік:

    Вось як шукаць у радках і слупках у Excel. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!

    Даступныя загрузкі

    2-мерны пошукавы ўзор рабочай кнігі

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.