Excel INDEX MATCH супраць VLOOKUP - прыклады формул

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

Гэты падручнік паказвае, як выкарыстоўваць INDEX і MATCH у Excel і чым гэта лепш, чым VLOOKUP.

У некалькіх апошніх артыкулах мы прыклалі добрую працу, каб растлумачыць асновы функцыі VLOOKUP для пачаткоўцаў і даць больш складаныя прыклады формул VLOOKUP для вопытных карыстальнікаў. А зараз я паспрабую калі не адгаварыць вас ад выкарыстання VLOOKUP, то прынамсі паказаць вам альтэрнатыўны спосаб выканання вертыкальнага пошуку ў Excel.

"Для чаго мне гэта трэба?" вы можаце задацца пытаннем. Паколькі VLOOKUP мае мноства абмежаванняў, якія ў многіх сітуацыях могуць перашкодзіць вам атрымаць жаданы вынік. З іншага боку, камбінацыя INDEX MATCH з'яўляецца больш гнуткай і мае шмат выдатных функцый, якія робяць яе лепшай за VLOOKUP па многіх параметрах.

    Excel INDEX і функцыі MATCH - асновы

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

    Функцыя INDEX - сінтаксіс і выкарыстанне

    Функцыя Excel INDEX вяртае значэнне ў масіве на аснове паказаных вамі нумароў радкоў і слупкоў. Сінтаксіс функцыі INDEX просты:

    ( крытэрый1= дыяпазон1) * ( крытэрый2= дыяпазон2), 0))}

    Заўвага. Гэта формула масіва, якую трэба завяршыць спалучэннем клавіш Ctrl + Shift + Enter.

    У прыкладзе табліцы ніжэй выкажам здагадку, што вы хочаце знайсці суму на аснове 2 крытэрыяў, Кліент і Прадукт .

    Наступная формула INDEX MATCH выдатна працуе:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    Дзе C2:C10 — дыяпазон, з якога трэба вярнуць значэнне, F1 гэта крытэрый1, A2:A10 - гэта дыяпазон для параўнання з крытэрыем1, F2 - гэта крытэрый 2, а B2:B10 - гэта дыяпазон для параўнання з крытэрыем2.

    Не забудзьце правільна ўвесці формулу, націснуўшы Ctrl + Shift + Enter , і Excel аўтаматычна заключыць яго ў фігурныя дужкі, як паказана на скрыншоце:

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

    Як працуюць гэтыя формулы

    Формулы выкарыстоўваюць той жа падыход, што і асноўная функцыя INDEX MATCH, якая праглядае адзін слупок. Каб ацаніць некалькі крытэрыяў, вы ствараеце два ці больш масіваў значэнняў TRUE і FALSE, якія прадстаўляюць супадзенні і несупадзенні для кожнага асобнага крытэрыю, а затым памнажаеце адпаведныя элементы гэтых масіваў. Аперацыя множання пераўтворыць TRUE і FALSE у 1 і 0 адпаведна і стварае масіў, дзе 1 адпавядаюць радкам, якія адпавядаюць усім крытэрыям.Функцыя MATCH з пошукавым значэннем 1 знаходзіць першы "1" у масіве і перадае яго пазіцыю ў INDEX, які вяртае значэнне ў гэтым радку з вызначанага слупка.

    Формула без масіва абапіраецца на здольнасць функцыі INDEX натыўна апрацоўваць масівы. Другі INDEX настроены на 0 row_num , каб ён перадаваў увесь масіў слупкоў у MATCH.

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

    Excel INDEX MATCH з AVERAGE, MAX, MIN

    Microsoft Excel мае спецыяльныя функцыі для пошуку мінімальнага, максімальнага і сярэдняга значэння ў дыяпазон. Але што, калі вам трэба атрымаць значэнне з іншай ячэйкі, звязанай з гэтымі значэннямі? У гэтым выпадку выкарыстоўвайце функцыю MAX, MIN або AVERAGE разам з INDEX MATCH.

    INDEX MATCH з MAX

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

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    INDEX MATCH з MIN

    Каб знайсці найменшае значэнне ў слупку D і атрымаць адпаведнае значэнне са слупка C, выкарыстоўвайце гэта :

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    INDEX MATCH з AVERAGE

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

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    У залежнасці ад таго, як арганізаваны вашы даныя, увядзіце 1 або -1 у трэці аргумент (тып_супадзення)функцыя MATCH:

    • Калі ваш слупок пошуку (у нашым выпадку слупок D) адсартаваны па ўзрастанні , пастаўце 1. Формула вылічыць найбольшае значэнне, якое менш чым або роўна сярэдняму значэнню.
    • Калі ваш слупок пошуку адсартаваны па змяншэнні , увядзіце -1. Формула вылічыць найменшае значэнне, якое большае за або роўнае сярэдняму значэнню.
    • Калі ваш пошукавы масіў змяшчае значэнне дакладна роўнае сярэдняму, вы можна ўвесці 0 для дакладнага супадзення. Сартаванне не патрабуецца.

    У нашым прыкладзе сукупнасці ў слупку D адсартаваны ў парадку змяншэння, таму мы выкарыстоўваем -1 для тыпу супадзення. У выніку мы атрымліваем "Токіо", паколькі яго насельніцтва (13 189 000) з'яўляецца найбольш блізкім да сярэдняга (12 269 006).

    Вам можа быць цікава даведацца, што VLOOKUP таксама можа выконваць такія вылічэнні, але ў выглядзе формулы масіва: VLOOKUP з AVERAGE, MAX, MIN.

    Выкарыстанне INDEX MATCH з IFNA / IFERROR

    Як вы напэўна заўважылі, калі INDEX MATCH формула ў Excel не можа знайсці пошукавае значэнне, выдае памылку #N/A. Калі вы хочаце замяніць стандартнае абазначэнне памылак чымсьці больш значным, загарніце сваю формулу INDEX MATCH у функцыю IFNA. Напрыклад:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")

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

    Калі вы хочаце выявіць усе памылкі, а не толькі #N/A, выкарыстоўвайце функцыю IFERROR замест IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")

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

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

    Практычны сшытак для спампоўкі

    Прыклады INDEX MATCH у Excel (файл .xlsx)

    INDEX(масіў, нумар_радка, [нумер_слупка])

    Вось вельмі простае тлумачэнне кожнага параметра:

    • масіў - дыяпазон ячэек, якія вы хочаце вярнуць value from.
    • row_num - нумар радка ў масіве, з якога вы хочаце вярнуць значэнне. Калі прапушчана, нумар_слупка абавязковы.
    • нумар_слупка - нумар слупка ў масіве, з якога вы хочаце вярнуць значэнне. Калі прапушчана, row_num абавязковы.

    Для атрымання дадатковай інфармацыі, калі ласка, глядзіце функцыю INDEX Excel.

    А вось прыклад формулы INDEX у самай простай форме:

    =INDEX(A1:C10,2,3)

    Формула шукае ў ячэйках ад A1 да C10 і вяртае значэнне ячэйкі ў 2-м радку і 3-м слупку, г.зн. ячэйцы C2.

    Вельмі проста, праўда? Аднак пры працы з рэальнымі дадзенымі вы наўрад ці калі-небудзь даведаецеся, які радок і слупок вам патрэбны, вось тут і спатрэбіцца функцыя СУПАДПАВЕДЗЕННЕ.

    Функцыя СУПАДАВАННЕ - сінтаксіс і выкарыстанне

    Функцыя СУПАДПАВЕДЗЕННЕ Excel шукае значэнне пошуку ў дыяпазоне ячэек і вяртае адносную пазіцыю гэтага значэння ў дыяпазоне.

    Сінтаксіс функцыі MATCH наступны:

    MATCH(значэнне_прагляду , масіў_супадзення, [тып_супадзення])
    • значэнне_прагляду - лік або тэкставае значэнне, якое вы шукаеце.
    • масіў_прагляду - дыяпазон ячэек, якія пошук.
    • match_type - вызначае, ці вяртаць дакладнае супадзенне ці бліжэйшае супадзенне:
      • 1 або прапушчана - знаходзіць найбольшае значэнне, якое меншае або роўнае шуканаму значэнню. Патрабуецца сартаванне масіва пошуку ў парадку ўзрастання.
      • 0 - знаходзіць першае значэнне, якое дакладна роўнае значэнню пошуку. У камбінацыі INDEX / MATCH вам амаль заўсёды патрабуецца дакладнае супадзенне, таму вы задаеце трэці аргумент вашай функцыі MATCH роўным 0.
      • -1 - знаходзіць найменшае значэнне, якое большае або роўнае lookup_value. Патрабуецца сартаванне масіва пошуку ў парадку змяншэння.

    Напрыклад, калі дыяпазон B1:B3 змяшчае значэнні "Нью-Ёрк", "Парыж", "Лондан", прыведзеная ніжэй формула вяртае лік 3, таму што "Лондан" з'яўляецца трэцім запісам у дыяпазоне:

    =MATCH("London",B1:B3,0)

    Для атрымання дадатковай інфармацыі, калі ласка, глядзіце функцыю MATCH Excel.

    На На першы погляд, карыснасць функцыі MATCH можа здацца сумніўнай. Каму важная пазіцыя значэння ў дыяпазоне? Тое, што мы хочам ведаць, гэта само значэнне.

    Дазвольце мне нагадаць вам, што адносная пазіцыя значэння пошуку (г.зн. нумароў радкоў і слупкоў) - гэта менавіта тое, што вам трэба паставіць у row_num і column_num аргументы функцыі INDEX. Як вы памятаеце, Excel INDEX можа знайсці значэнне на стыку зададзенага радка і слупка, але не можа вызначыць, які менавіта радок і слупок вам патрэбны.

    Як выкарыстоўваць функцыю INDEX MATCH у Excel

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

    Для вертыкальнага пошуку вы выкарыстоўваеце функцыю MATCH толькі для вызначэння нумара радка і перадачы дыяпазону слупкоў непасрэдна ў INDEX:

    INDEX ( слупок для вяртання значэння з, MATCH ( значэнне пошуку, слупок для пошуку, 0))

    Усё яшчэ ёсць цяжкасці з высвятленнем гэтага? Гэта можа быць лягчэй зразумець на прыкладзе. Выкажам здагадку, у вас ёсць спіс нацыянальных сталіц і іх насельніцтва:

    Каб знайсці насельніцтва пэўнай сталіцы, скажам, сталіцы Японіі, выкарыстоўвайце наступную формулу INDEX MATCH:

    =INDEX(C2:C10, MATCH("Japan", A2:A10, 0))

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

    • Функцыя MATCH шукае значэнне пошуку "Японія" ў дыяпазоне A2: A10 і вяртае лік 3, таму што "Японія" займае трэцяе месца ў масіве пошуку.
    • Нумар радка пераходзіць непасрэдна да аргумента row_num INDEX, загадваючы яму вярнуць значэнне з гэтага радок.

    Такім чынам, прыведзеная вышэй формула ператвараецца ў просты INDEX(C2:C,3), які загадвае шукаць у ячэйках C2-C10 і атрымліваць значэнне з 3-й ячэйкі ў гэтым дыяпазоне, г.зн. C4, таму што мы пачынаем адлік з другога радка.

    Не жадаеце жорстка ўводзіць горад у формулу? Увядзіце яго ў нейкую ячэйку, скажам, F1, пастаўце ячэйкуспасылкі на MATCH, і вы атрымаеце формулу дынамічнага пошуку:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    Важная заўвага! Колькасць радкоў у array аргумент INDEX павінен супадаць з колькасцю радкоў у lookup_array аргументе MATCH, інакш формула дасць няправільны вынік.

    Пачакайце, пачакайце… чаму не Ці не мы проста выкарыстоўваем наступную формулу Vlookup? Які сэнс марнаваць час на спробы высветліць таемныя павароты Excel MATCH INDEX?

    =VLOOKUP(F1, A2:C10, 3, FALSE)

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

    Парады:

    • У Excel 365 і Excel 2021 вы можа выкарыстоўваць больш сучасную формулу INDEX XMATCH.
    • Для Табліц Google глядзіце прыклады формул з INDEX MATCH у гэтым артыкуле.

    INDEX MATCH супраць VLOOKUP

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

    Ніжэй я пакажу асноўныя перавагі MATCH INDEX перад VLOOKUP, а вы самі вырашаеце, ці будзе гэта годным дадаткам да вашага арсенала Excel.

    4 асноўныя прычыны выкарыстання INDEX MATCH замест VLOOKUP

    1. Пошук справа налева. Любы адукаваны карыстальнік ведае, што VLOOKUP не можа глядзець налева, гэта значыць ваша значэнне пошуку заўсёды павінна знаходзіцца ў самым левым слупку стол. INDEX MATCH можа з лёгкасцю шукаць злева! Наступны прыклад паказвае гэта ў дзеянні: Як зрабіць VLOOKUP значэнне злева ў Excel.
    2. Бяспечна ўстаўляць або выдаляць слупкі. Формулы VLOOKUP парушаюцца або дае няправільныя вынікі, калі новы слупок выдалены або дададзены ў табліцу пошуку, таму што сінтаксіс VLOOKUP патрабуе ўказання нумара індэкса слупка, з якога вы хочаце атрымаць дадзеныя. Натуральна, што пры даданні або выдаленні слупкоў нумар індэкса змяняецца.

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

    3. Няма абмежаванняў на памер пошукавага значэння. Пры выкарыстанні функцыі VLOOKUP агульная даўжыня вашых крытэрыяў пошуку не можа перавышаць 255 сімвалаў, інакш вы атрымаеце #ЗНАЧЭННЕ ! памылка. Такім чынам, калі ваш набор даных утрымлівае доўгія радкі, адзіным працоўным з'яўляецца INDEX MATCHрашэнне.
    4. Больш высокая хуткасць апрацоўкі. Калі вашы табліцы адносна невялікія, наўрад ці будзе істотная розніца ў прадукцыйнасці Excel. Але калі вашы працоўныя аркушы ўтрымліваюць сотні ці тысячы радкоў і, адпаведна, сотні ці тысячы формул, MATCH INDEX будзе працаваць нашмат хутчэй, чым VLOOKUP, таму што Excel будзе апрацоўваць толькі слупкі пошуку і вяртання, а не ўвесь масіў табліцы.

      Уплыў VLOOKUP на прадукцыйнасць Excel можа быць асабліва прыкметным, калі ваша кніга змяшчае складаныя формулы масіва, такія як VLOOKUP і SUM. Справа ў тым, што для праверкі кожнага значэння ў масіве патрабуецца асобны выклік функцыі VLOOKUP. Такім чынам, чым больш значэнняў утрымлівае ваш масіў і чым больш формул масіва ў вас у працоўнай кнізе, тым павольней працуе Excel.

    СУПАДАВАННЕ ІНДЭКСА Excel - прыклады формул

    Веданне прычыны, каб вывучыць функцыю MATCH INDEX, давайце пяройдзем да самай цікавай часткі і паглядзім, як вы можаце прымяніць тэарэтычныя веды на практыцы.

    Формула INDEX MATCH для пошуку справа налева

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

    У гэтым прыкладзе,мы дадамо слупок "Рэйнг" злева ад нашай узорнай табліцы і паспрабуем высветліць, як расійская сталіца Масква займае рэйтынг па колькасці насельніцтва.

    З пошукавым значэннем у G1 выкарыстоўвайце наступную формулу для пошуку у C2:C10 і вярнуць адпаведнае значэнне з A2:A10:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    Савет. Калі вы плануеце выкарыстоўваць сваю формулу INDEX MATCH для больш чым адной ячэйкі, не забудзьцеся заблакіраваць абодва дыяпазоны абсалютнымі спасылкамі на ячэйкі (напрыклад, $A$2:$A$10 і $C$2:4C$10), каб яны не скажаліся, калі капіраванне формулы.

    INDEX MATCH MATCH для пошуку ў радках і слупках

    У прыведзеных вышэй прыкладах мы выкарыстоўвалі INDEX MATCH у якасці замены класічнага VLOOKUP для вяртання значэння з загадзя вызначанага аднаго слупка дыяпазон. Але што, калі вам трэба шукаць у некалькіх радках і слупках? Іншымі словамі, што, калі вы хочаце выканаць так званы матрычны або двухбаковы пошук?

    Гэта можа здацца складаным, але формула вельмі падобная да асноўнай функцыі Excel INDEX MATCH, толькі з адным адрозненнем. Здагадайцеся?

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

    INDEX (масіў, MATCH ( значэнне vlookup, слупок для пошуку, 0), MATCH ( hlookup value, радок для пошуку, 0))

    А цяпер, калі ласка, паглядзіце на табліцу ніжэй і давайце пабудуем INDEX MATCH MATCHформула для вызначэння насельніцтва (у мільёнах) у дадзенай краіне за дадзены год.

    З мэтавай краінай у G1 (значэнне прагляду) і мэтавым годам у G2 (значэнне прагляду), формула прымае такую ​​форму :

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

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

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

    MATCH(G1,A2:A11,0) – шукае праз A2:A11 значэнне ў ячэйцы G1 ("Кітай") і вяртае яго пазіцыю, якая роўная 2.

    MATCH(G2,B1:D1,0)) – шукае праз B1:D1, каб атрымаць пазіцыю значэння ў ячэйцы G2 ("2015"), якая роўная 3.

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

    INDEX(B2:D11, 2, 3)

    У выніку вы атрымаеце значэнне на скрыжаванні 2-га радка і 3-га слупка ў дыяпазоне B2:D11, якое з'яўляецца значэннем у ячэйцы D3. лёгка? Так!

    СУПАДЗЕННЕ ІНДЭКСА Excel для пошуку некалькіх крытэрыяў

    Калі вы мелі магчымасць прачытаць наш падручнік Excel VLOOKUP, вы, верагодна, ужо пратэставалі формулу VLOOKUP з некалькімі крытэрыямі. Аднак істотным абмежаваннем гэтага падыходу з'яўляецца неабходнасць дадаць дапаможны слупок. Добрай навіной з'яўляецца тое, што функцыя INDEX MATCH у Excel таксама можа шукаць па двух ці больш крытэрыях без змянення або рэструктурызацыі зыходных даных!

    Вось агульная формула INDEX MATCH з некалькімі крытэрамі:

    {=INDEX( вярнуты_дыяпазон, MATCH(1,

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