Excel INDEX MATCH наспроти VLOOKUP - примери на формула

  • Споделете Го Ова
Michael Brown

Овој туторијал покажува како да се користат INDEX и MATCH во Excel и како тоа е подобро од VLOOKUP.

Во неколку неодамнешни написи, направивме добар напор да ги објасниме основите на функцијата VLOOKUP на почетниците и да обезбедиме посложени примери на формула VLOOKUP на моќните корисници. И сега, ќе се обидам, ако не да ве одвратам од користењето на VLOOKUP, тогаш барем ќе ви покажам алтернативен начин да направите вертикално пребарување во Excel.

"За што ми треба тоа?" може да се запрашате. Бидејќи VLOOKUP има бројни ограничувања кои можат да ве спречат да го добиете посакуваниот резултат во многу ситуации. Од друга страна, комбинацијата INDEX MATCH е пофлексибилна и има многу прекрасни карактеристики што ја прават супериорна во однос на VLOOKUP во многу аспекти.

    Excel INDEX и MATCH функции - основите

    Бидејќи целта на ова упатство е да демонстрира алтернативен начин за правење vlookup во 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 на формула и пополнете ја со вообичаен хит Внесете:

    Како функционираат овие формули

    Формулите го користат истиот пристап како основната функција INDEX MATCH што гледа низ една колона. За да оцените повеќе критериуми, креирате две или повеќе низи од TRUE и FALSE вредности кои претставуваат совпаѓања и несовпаѓања за секој поединечен критериум, а потоа ги множите соодветните елементи на овие низи. Операцијата за множење ги конвертира TRUE и FALSE во 1 и 0, соодветно, и произведува низа каде што 1 одговараат на редови кои одговараат на сите критериуми.Функцијата MATCH со вредност за пребарување од 1 го наоѓа првото „1“ во низата и ја пренесува својата позиција на INDEX, кој враќа вредност во овој ред од наведената колона.

    Формулата што не е низа се потпира на способноста на функцијата INDEX да се справува со низи природно. Вториот ИНДЕКС е конфигуриран со 0 row_num така што ќе ја пренесе целата колона низа на MATCH.

    Тоа е објаснување на високо ниво на логиката на формулата. За целосни детали, погледнете го Excel INDEX MATCH со повеќе критериуми.

    Excel INDEX MATCH со AVERAGE, MAX, MIN

    Microsoft Excel има специјални функции за наоѓање минимална, максимална и просечна вредност во опсег. Но, што ако треба да добиете вредност од друга ќелија што е поврзана со тие вредности? Во овој случај, користете ја функцијата MAX, MIN или AVERAGE заедно со INDEX MATCH.

    INDEX MATCH with 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))

    СПОЈАВАЊЕ НА ИНДЕКС со ПРОСЕК

    За да се одреди вредноста најблиску до просекот во 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. Се надевам дека нашите примери на формула ќе ви бидат корисни и со нетрпение очекуваме да ве видиме на нашиот блог следната недела!

    Вежбајте работна книга за преземање

    Примери на Excel INDEX MATCH (датотека .xlsx)

    INDEX(низа, row_num, [column_num])

    Еве многу едноставно објаснување за секој параметар:

    • низа - опсег на ќелии што сакате да ги вратите вредност од.
    • row_num - бројот на редот во низата од кој сакате да вратите вредност. Ако се испушти, потребна е колона_број.
    • колона_број - бројот на колоната во низата од која сакате да вратите вредност. Ако е испуштено, потребен е row_num.

    За повеќе информации, погледнете ја функцијата Excel INDEX.

    И еве пример за формулата INDEX во нејзината наједноставна форма:

    =INDEX(A1:C10,2,3)

    Формулата пребарува во ќелиите A1 до C10 и ја враќа вредноста на ќелијата во вториот ред и третата колона, т.е. ќелијата C2.

    Многу лесно, нели? Меѓутоа, кога работите со реални податоци, тешко дека некогаш би знаеле кој ред и колона сакате, токму тука ни доаѓа функцијата MATCH.

    Функција MATCH - синтакса и употреба

    Функцијата Excel MATCH бара вредност за пребарување во опсег на ќелии и ја враќа релативната позиција на таа вредност во опсегот.

    Синтаксата на функцијата MATCH е следна:

    MATCH(lookup_value , lookup_array, [match_type])
    • lookup_value - бројот или вредноста на текстот што ја барате.
    • lookup_array - опсег на ќелии се пребаруваа.
    • тип_совпаѓање - одредува дали да се врати точно совпаѓање или најблиското совпаѓање:
      • 1 или испуштена - ја наоѓа најголемата вредност што е помала или еднаква на вредноста за пребарување. Бара сортирање на низата за пребарување по растечки редослед.
      • 0 - ја наоѓа првата вредност што е точно еднаква на вредноста за пребарување. Во комбинацијата INDEX / MATCH, скоро секогаш ви треба точно совпаѓање, па го поставувате третиот аргумент на вашата функција MATCH на 0.
      • -1 - ја наоѓа најмалата вредност што е поголема или еднаква на lookup_value. Бара сортирање на низата за пребарување по опаѓачки редослед.

    На пример, ако опсегот B1:B3 ги содржи вредностите "New-York", "Paris", "London", формулата подолу го враќа бројот 3, бидејќи „London“ е третиот запис во опсегот:

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

    За повеќе информации, погледнете ја функцијата Excel MATCH.

    На на прв поглед, корисноста на функцијата 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))

    Важна забелешка! Бројот на редови во низата аргументот на INDEX треба да одговара на бројот на редови во аргументот lookup_array на MATCH, инаку формулата ќе произведе неточен резултат.

    Чекај, чекај... зошто не Не ја користиме следнава формула за Vlookup? Која е поентата во губењето време обидувајќи се да ги откриете таинствените пресврти на Excel MATCH INDEX?

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

    Во овој случај, нема смисла :) Овој едноставен пример е само за демонстративни цели, за да добиете чувство како функционираат заедно функциите INDEX и MATCH. Другите примери што следат подолу ќе ви ја покажат вистинската моќ на оваа комбинација која лесно се справува со многу сложени сценарија кога VLOOKUP ќе се сопне.

    Совети:

    • Во Excel 365 и Excel 2021, вие може да користи помодерна формула INDEX XMATCH.
    • За Google Sheets, видете примери на формула со INDEX MATCH во оваа статија.

    INDEX MATCH vs. VLOOKUP

    Кога одлучувајќи која функција да се користи за вертикално пребарување, повеќето гуруа на Excel се согласуваат дека INDEX MATCH е далеку подобар од VLOOKUP. Сепак, многу луѓе сè уште остануваат со VLOOKUP, прво, затоа што е поедноставно и, второ, затоа што не ги разбираат целосно сите придобивки од користењето на формулата INDEX MATCH во Excel. Без такво разбирање, никој не е подготвен да го инвестира своето време за учењепосложена синтакса.

    Подолу, ќе ги истакнам клучните предности на MATCH INDEX во однос на VLOOKUP, а вие одлучете дали е достоен додаток на вашиот арсенал на Excel.

    4 главни причини за користење INDEX MATCH наместо VLOOKUP

    1. Пребарување од десно на лево. Како што знае секој образован корисник, VLOOKUP не може да гледа лево, што значи дека вашата вредност за пребарување секогаш треба да се наоѓа во најлевата колона од масата. INDEX MATCH може лесно да бара лево! Следниот пример го покажува тоа на дело: Како да се вметне вредност лево во Excel.
    2. Вметнете или бришете колони безбедно. Формулите VLOOKUP се скршени или даваат неточни резултати кога се појавува нова колона избришана од или додадена на табела за пребарување бидејќи синтаксата на VLOOKUP бара да го наведете индексниот број на колоната од која сакате да ги повлечете податоците. Секако, кога додавате или бришете колони, бројот на индексот се менува.

      Со INDEX MATCH, го одредувате опсегот на повратната колона, а не број на индекс. Како резултат на тоа, можете слободно да вметнете и отстраните онолку колони колку што сакате без да се грижите за ажурирање на секоја поврзана формула.

    3. Нема ограничување за големината на бараната вредност. Кога ја користите функцијата VLOOKUP, вкупната должина на вашите критериуми за пребарување не може да надмине 255 знаци, во спротивно ќе завршите со #VALUE ! грешка. Значи, ако вашата база на податоци содржи долги низи, INDEX MATCH е единствената работарешение.
    4. Поголема брзина на обработка. Ако вашите табели се релативно мали, тешко дека ќе има некоја значајна разлика во перформансите на Excel. Но, ако вашите работни листови содржат стотици или илјадници редови, а со тоа и стотици или илјадници формули, MATCH INDEX ќе работи многу побрзо од VLOOKUP затоа што Excel ќе мора да ги обработува само колоните за пребарување и враќање наместо целата низа на табели.

      Влијанието на VLOOKUP врз перформансите на Excel може да биде особено забележливо ако вашата работна книга содржи сложени формули за низи како VLOOKUP и SUM. Поентата е дека проверката на секоја вредност во низата бара посебен повик на функцијата VLOOKUP. Значи, колку повеќе вредности содржи вашата низа и колку повеќе формули за низи имате во работната книга, толку побавно функционира Excel.

    Excel INDEX MATCH - примери на формула

    Познавање на причини за учење на функцијата 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 - едната за да добиете број на ред, а другата за да добиете број на колона. И им честитам на оние од вас кои точно погодија :)

    ИНДЕКС (низа, MATCH ( vlookup вредност, колона за да се погледне наспроти, 0), MATCH ( hlookup вредност, ред за гледање наспроти, 0))

    И сега, погледнете ја табелата подолу и ајде да изградиме ИНДЕКС МАТЧформула за наоѓање на населението (во милиони) во дадена земја за дадена година.

    Со целната земја во G1 (вредност на vlookup) и целната година во G2 (вредност на hlookup), формулата го добива овој облик :

    =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)

    Како резултат, добивате вредност на пресекот на вториот ред и третата колона во опсегот B2:D11, што е вредноста во ќелијата D3. Лесно? Да!

    Excel INDEX MATCH за пребарување на повеќе критериуми

    Ако сте имале можност да го прочитате нашето упатство за Excel VLOOKUP, веројатно веќе сте тестирале формула за Vlookup со повеќе критериуми. Сепак, значително ограничување на тој пристап е неопходноста да се додаде помошна колона. Добрата вест е дека функцијата INDEX MATCH на Excel може да бара и со два или повеќе критериуми, без да ги менува или реструктуира вашите изворни податоци!

    Еве ја генеричката формула INDEX MATCH со повеќе критериуми:

    {=INDEX( повратен_опсег, MATCH(1,

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.