Преглед садржаја
Овај водич показује како да користите ИНДЕКС и МАТЦХ у Екцел-у и како је то боље од ВЛООКУП-а.
У неколико недавних чланака, потрудили смо се да објаснимо основе функције ВЛООКУП почетницима и пружимо сложеније примере ВЛООКУП формула за напредне кориснике. А сада, покушаћу ако не да вас одвратим од коришћења ВЛООКУП-а, онда ћу вам бар показати алтернативни начин да извршите вертикално тражење у Екцел-у.
„Шта ми то треба?“ можете се запитати. Зато што ВЛООКУП има бројна ограничења која вас могу спречити да постигнете жељени резултат у многим ситуацијама. С друге стране, комбинација ИНДЕКС МАТЦХ је флексибилнија и има много сјајних карактеристика које је чине супериорном у односу на ВЛООКУП у многим аспектима.
Екцел ИНДЕКС и МАТЦХ функције – основе
Пошто је циљ овог упутства да се демонстрира алтернативни начин да се изврши влоокуп у Екцел-у коришћењем комбинације функција ИНДЕКС и МАТЦХ, нећемо се много задржавати на њиховој синтакси и користи. Покрићемо само минимум неопходан за разумевање опште идеје, а затим ћемо детаљно погледати примере формула који откривају све предности коришћења ИНДЕКС МАТЦХ уместо ВЛООКУП.
функција ИНДЕКС – синтакса и употреба
Екцел функција ИНДЕКС враћа вредност у низу на основу бројева редова и колона које наведете. Синтакса функције ИНДЕКС је јасна:
( критеријум1= опсег1) * ( критеријум2= опсег2), 0))}Напомена. Ово је формула низа која се мора попунити пречицом Цтрл + Схифт + Ентер.
У доњој табели примера, под претпоставком да желите да пронађете износ на основу 2 критеријума, Купац и Производ .
Следећа формула ИНДЕКС МАТЦХ ради као посластица:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
Где је Ц2:Ц10 опсег за враћање вредности, Ф1 је критеријум1, А2:А10 је опсег за поређење са критеријумом1, Ф2 је критеријум 2, а Б2:Б10 је опсег за поређење са критеријумом2.
Не заборавите да правилно унесете формулу притиском на Цтрл + Схифт + Ентер , а Екцел ће га аутоматски затворити витичастим заградама као што је приказано на снимку екрана:
Ако не желите да користите формуле низа у својим радним листовима, додајте још једну функцију ИНДЕКС у формулу и довршите је уобичајеним притиском Ентер:
Како ове формуле функционишу
Формуле користе исти приступ као основна функција ИНДЕКС МАТЦХ која прегледава једну колону. Да бисте проценили више критеријума, креирате два или више низова вредности ТРУЕ и ФАЛСЕ који представљају подударања и неподударања за сваки појединачни критеријум, а затим множите одговарајуће елементе ових низова. Операција множења претвара ТРУЕ и ФАЛСЕ у 1 и 0, респективно, и производи низ у коме 1 одговарају редовима који одговарају свим критеријумима.Функција МАТЦХ са вредношћу претраживања 1 проналази први „1“ у низу и прослеђује његову позицију у ИНДЕКС, који враћа вредност у овом реду из наведене колоне.
Формула која није низ се ослања на способност функције ИНДЕКС да нативно рукује низовима. Други ИНДЕКС је конфигурисан са 0 ред_нум тако да ће проследити цео низ колона у МАТЦХ.
То је објашњење на високом нивоу логике формуле. За потпуне детаље погледајте УКЉУЧИВАЊЕ ИНДЕКСА у Екцел-у са више критеријума.
Подударање индекса у Екцел-у са ПРОСЕКОМ, МАКСИМОМ, МИН.
Мицрософт Екцел има посебне функције за проналажење минималне, максималне и просечне вредности у домет. Али шта ако треба да добијете вредност из друге ћелије која је повезана са тим вредностима? У овом случају користите функцију МАКС, МИН или АВЕРАГЕ заједно са ИНДЕКС МАТЦХ.
ИНДЕКС МАТЦХ са МАКС
Да бисте пронашли највећу вредност у колони Д и вратили вредност из колоне Ц у У истом реду, користите ову формулу:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
ИНДЕКСА ПОДАРХИВАЊЕ са МИН
Да бисте лоцирали најмању вредност у колони Д и извукли придружену вредност из колоне Ц, користите ову :
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
ПОДРЖАВА ИНДЕКС са ПРОСЕКОМ
Да бисте израчунали вредност најближу просеку у Д2:Д10 и добили одговарајућу вредност из колоне Ц, ово је формула користити:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
У зависности од тога како су ваши подаци организовани, доставите или 1 или -1 трећем аргументу (матцх_типе)функција МАТЦХ:
- Ако је ваша колона за тражење (колона Д у нашем случају) сортирана узлазно , ставите 1. Формула ће израчунати највећу вредност која је мања од или једнако просечној вредности.
- Ако је ваша колона за тражење сортирана опадајуће , унесите -1. Формула ће израчунати најмању вредност која је већа од или једнака просечној вредности.
- Ако ваш низ претраживања садржи вредност тачно једнаку просеку, ви може унети 0 за тачно подударање. Није потребно сортирање.
У нашем примеру, популације у колони Д су сортиране у опадајућем редоследу, тако да користимо -1 за тип подударања. Као резултат, добијамо „Токио“ пошто је његова популација (13.189.000) најближа која је већа од просека (12.269.006).
Можда ћете бити радознали да знате да ВЛООКУП такође може да изврши такве прорачуне, али као формулу низа: ВЛООКУП са АВЕРАГЕ, МАКС, МИН.
Коришћење ИНДЕКС МАТЦХ са ИФНА / ИФЕРРОР
Као што сте вероватно приметили, ако се ИНДЕКС МАТЦХ формула у Екцел-у не може да пронађе тражену вредност, производи грешку #Н/А. Ако желите да замените стандардну нотацију грешке нечим значајнијим, умотајте своју формулу ИНДЕКС МАТЦХ у функцију ИФНА. На пример:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")
И сада, ако неко унесе табелу за тражење која не постоји у опсегу претраживања, формула ће експлицитно обавестити корисника да нема подударањапронађено:
Ако желите да ухватите све грешке, а не само #Н/А, користите функцију ИФЕРРОР уместо ИФНА:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")
Имајте на уму да у многим ситуацијама можда није мудро прикривати све грешке јер вас оне упозоравају на могуће грешке у вашој формули.
Тако користите ИНДЕКС и МАТЦХ у Екцел-у. Надам се да ће вам се наши примери формула показати од помоћи и радујемо се што ћемо вас видети на нашем блогу следеће недеље!
Вежбање за преузимање
Екцел ИНДЕКС МАТЦХ примери (.клск датотека)
ИНДЕКС(низ, број_реда, [број_колоне])Ево врло једноставног објашњења сваког параметра:
- низ – опсег ћелија за који желите да вратите вредност од.
- број_реда - број реда у низу из којег желите да вратите вредност. Ако је изостављен, број_колоне је обавезан.
- број_колоне - број колоне у низу из које желите да вратите вредност. Ако је изостављен, ров_нум је обавезан.
За више информација погледајте Екцел функцију ИНДЕКС.
А ево примера формуле ИНДЕКС у њеном најједноставнијем облику:
=INDEX(A1:C10,2,3)
Формула претражује ћелије А1 до Ц10 и враћа вредност ћелије у 2. реду и 3. колони, тј. ћелији Ц2.
Врло лако, зар не? Међутим, када радите са стварним подацима, тешко да бисте икада знали који ред и колону желите, ту је згодна функција МАТЦХ.
функција МАТЦХ – синтакса и употреба
Екцел функција МАТЦХ тражи тражену вредност у опсегу ћелија и враћа релативну позицију те вредности у опсегу.
Синтакса функције МАТЦХ је следећа:
МАТЦХ(вредност_потраживања , лоокуп_арраи, [матцх_типе])- лоокуп_валуе - број или текстуална вредност коју тражите.
- лоокуп_арраи - опсег ћелија који се сеарцхед.
- матцх_типе - одређује да ли да се врати тачно или најближе подударање:
- 1 или изостављено - проналази највећу вредност која је мања или једнака вредности за тражење. Захтева сортирање низа за тражење у растућем редоследу.
- 0 - проналази прву вредност која је тачно једнака вредности за тражење. У комбинацији ИНДЕКС / МАТЦХ вам је скоро увек потребно тачно подударање, тако да постављате трећи аргумент ваше функције МАТЦХ на 0.
- -1 - проналази најмању вредност која је већа или једнака лоокуп_валуе. Захтева сортирање низа за тражење у опадајућем редоследу.
На пример, ако опсег Б1:Б3 садржи вредности „Нев-Иорк“, „Парис“, „Лондон“, формула испод враћа број 3, јер је „Лондон“ трећи унос у опсегу:
=MATCH("London",B1:B3,0)
За више информација погледајте функцију Екцел МАТЦХ.
На на први поглед, корисност функције МАТЦХ може изгледати упитно. Коме је стало до позиције вредности у опсегу? Оно што желимо да знамо је сама вредност.
Дозволите ми да вас подсетим да је релативна позиција тражене вредности (тј. бројеви редова и колона) управо оно што треба да унесете у ред_нум и број_колоне аргументи функције ИНДЕКС. Као што се сећате, Екцел ИНДЕКС може да пронађе вредност на споју датог реда и колоне, али не може да одреди који тачно ред и колону желите.
Како користити функцију ИНДЕКС МАТЦХ у Екцел-у
Сада када знате основе, верујем да јестевећ је почео да схвата како МАТЦХ и ИНДЕКС раде заједно. Укратко, ИНДЕКС проналази тражену вредност према бројевима колона и редова, а МАТЦХ обезбеђује те бројеве. То је то!
За вертикално тражење, користите функцију МАТЦХ само да бисте одредили број реда и доставили опсег колоне директно у ИНДЕКС:
ИНДЕКС ( колона за враћање вредности из, МАТЦХ ( вредност тражења, колона за тражење, 0))И даље имате потешкоћа да то схватите? Можда је лакше разумети на примеру. Претпоставимо да имате списак националних престоница и њиховог становништва:
Да бисте пронашли популацију одређеног главног града, рецимо главног града Јапана, користите следећу формулу ИНДЕКС МАТЦХ:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
Сада, хајде да анализирамо шта свака компонента ове формуле заправо ради:
- Функција МАТЦХ тражи тражену вредност „Јапан“ у опсегу А2: А10, и враћа број 3, јер је „Јапан“ трећи у низу за тражење.
- Број реда иде директно у аргумент ров_нум аргумента ИНДЕКС и упућује га да врати вредност из тог ред.
Дакле, горња формула се претвара у једноставан ИНДЕКС(Ц2:Ц,3) који каже да се тражи у ћелијама Ц2 до Ц10 и да се повуче вредност из 3. ћелије у том опсегу, тј. Ц4 јер почињемо да бројимо од другог реда.
Не желите да чврсто кодирате град у формули? Унесите га у неку ћелију, рецимо Ф1, наведите ћелијуреференцу на МАТЦХ и добићете формулу за динамичко тражење:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Важна напомена! Број редова у арраи аргумент ИНДЕКС би требало да се подудара са бројем редова у лоокуп_арраи аргументу МАТЦХ, иначе ће формула дати нетачан резултат.
Чекај, чекај… зашто не зар једноставно не користимо следећу Влоокуп формулу? Која је поента да губите време покушавајући да откријете загонетне обрте Екцел МАТЦХ ИНДЕКСА?
=VLOOKUP(F1, A2:C10, 3, FALSE)
У овом случају, нема смисла :) Овај једноставан пример служи само у сврху демонстрације, тако да стекнете осећај како функције ИНДЕКС и МАТЦХ раде заједно. Други примери који следе испод показаће вам праву моћ ове комбинације која се лако носи са многим сложеним сценаријима када ВЛООКУП посрне.
Савети:
- У Екцел 365 и Екцел 2021, ви може да користи модернију формулу ИНДЕКС КСМАТЦХ.
- За Гоогле табеле, погледајте примере формула са ИНДЕКС МАТЦХ у овом чланку.
ИНДЕКС МАТЦХ наспрам ВЛООКУП
Када одлучујући коју функцију да користе за вертикално тражење, већина Екцел гуруа се слаже да је ИНДЕКС МАТЦХ далеко бољи од ВЛООКУП-а. Међутим, многи људи и даље остају са ВЛООКУП-ом, прво зато што је једноставнији и, друго, зато што не разумеју у потпуности све предности коришћења формуле ИНДЕКС МАТЦХ у Екцел-у. Без таквог разумевања нико није вољан да уложи своје време у учењесложенију синтаксу.
У наставку ћу истаћи кључне предности МАТЦХ ИНДЕКС-а у односу на ВЛООКУП, а ви одлучите да ли је достојан додатак вашем Екцел арсеналу.
4 главна разлога за коришћење ИНДЕКС МАТЦХ уместо ВЛООКУП
- Тражење здесна налево. Као што сваки образовани корисник зна, ВЛООКУП не може да гледа лево, што значи да ваша вредност тражења увек треба да се налази у крајњој левој колони сто. ИНДЕКС МАТЦХ може са лакоћом да изврши лево тражење! Следећи пример то показује на делу: Како да проверите вредност са леве стране у Екцел-у.
- Безбедно уметните или избришите колоне. ВЛООКУП формуле се покваре или испоручују нетачне резултате када је нова колона обрисан из или додат у табелу за тражење јер синтакса ВЛООКУП-а захтева навођење индексног броја колоне из које желите да извучете податке. Наравно, када додате или избришете колоне, број индекса се мења.
Код ИНДЕКС МАТЦХ наводите опсег колоне за враћање, а не број индекса. Као резултат, слободни сте да убаците и уклоните онолико колона колико желите без бриге о ажурирању сваке повезане формуле.
- Нема ограничења за величину вредности за тражење. Када користите функцију ВЛООКУП, укупна дужина ваших критеријума претраживања не може бити већа од 255 знакова, иначе ћете на крају имати #ВАЛУЕ ! грешка. Дакле, ако ваш скуп података садржи дугачке низове, ИНДЕКС МАТЦХ је једини који радирешење.
- Већа брзина обраде. Ако су ваше табеле релативно мале, тешко да ће бити значајне разлике у перформансама Екцел-а. Али ако ваши радни листови садрже стотине или хиљаде редова, а самим тим и стотине или хиљаде формула, МАТЦХ ИНДЕКС ће радити много брже од ВЛООКУП-а јер ће Екцел морати да обрађује само колоне за тражење и враћање, а не цео низ табеле.
Утицај ВЛООКУП-а на перформансе Екцел-а може бити посебно приметан ако ваша радна свеска садржи сложене формуле низа као што су ВЛООКУП и СУМ. Поента је да провера сваке вредности у низу захтева посебан позив функције ВЛООКУП. Дакле, што више вредности ваш низ садржи и што више формула низа имате у радној свесци, Екцел има спорије перформансе.
Екцел ИНДЕКС ПОДРЖАВАЊЕ – примери формула
Познавање разлози за учење функције МАТЦХ ИНДЕКС, хајде да пређемо на најзанимљивији део и видимо како можете применити теоријско знање у пракси.
Формула ИНДЕКС МАТЦХ да бисте погледали с десна на лево
Као већ поменуто, ВЛООКУП не може да гледа лево. Дакле, осим ако ваше вредности за тражење нису крајња лева колона, нема шансе да ће вам Влоокуп формула донети резултат који желите. Функција ИНДЕКС МАТЦХ у Екцел-у је свестранија и није је баш брига где се налазе колоне за тражење и враћање.
За овај пример,додаћемо колону Ранг са леве стране наше табеле узорка и покушати да откријемо како се руски главни град, Москва, рангира у смислу броја становника.
Са вредношћу претраживања у Г1, користите следећу формулу за претрагу у Ц2:Ц10 и вратите одговарајућу вредност из А2:А10:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
Савет. Ако планирате да користите формулу ИНДЕКС МАТЦХ за више од једне ћелије, обавезно закључајте оба опсега апсолутним референцама на ћелије (као што су $А$2:$А$10 и $Ц$2:4Ц$10) како се не би изобличили када копирање формуле.
ИНДЕКС МАТЦХ МАТЦХ за претрагу у редовима и колонама
У горњим примерима, користили смо ИНДЕКС МАТЦХ као замену за класични ВЛООКУП да бисмо вратили вредност из унапред дефинисане једне колоне домет. Али шта ако треба да тражите у више редова и колона? Другим речима, шта ако желите да извршите такозвану матричну или двосмерну претрагу?
Ово може звучати незгодно, али формула је веома слична на основну Екцел функцију ИНДЕКС МАТЦХ, са само једном разликом. Погоди шта?
Једноставно, користите две функције МАТЦХ – једну да добијете број реда, а другу да добијете број колоне. И честитам онима од вас који су добро погодили :)
ИНДЕКС (низ, МАТЦХ ( влоокуп валуе, колона за тражење, 0), МАТЦХ ( хлоокуп валуе, ред за тражење, 0))А сада, погледајте доњу табелу и хајде да направимо ИНДЕКС МАТЦХ МАЦХформула за проналажење становништва (у милионима) у датој земљи за дату годину.
Са циљном земљом у Г1 (влоокуп вредност) и циљном годином у Г2 (хлоокуп вредност), формула добија овај облик :
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
Како ова формула функционише
Увек када треба да разумете сложену Екцел формулу, поделите је на мање делове и погледајте шта свака појединачна функција ради:
MATCH(G1,A2:A11,0)
– претражује А2:А11 за вредност у ћелији Г1 („Кина“) и враћа њену позицију, која је 2.
MATCH(G2,B1:D1,0))
– претражује Б1:Д1 да бисте добили позицију вредности у ћелији Г2 („2015“), која је 3.
Горени бројеви редова и колона иду на одговарајуће аргументе функције ИНДЕКС:
INDEX(B2:D11, 2, 3)
Као резултат, добијате вредност на пресеку 2. реда и 3. колоне у опсегу Б2:Д11, што је вредност у ћелији Д3. Лако? Да!
Екцел ИНДЕКС МАТЦХ за тражење више критеријума
Ако сте имали прилику да прочитате наш водич за Екцел ВЛООКУП, вероватно сте већ тестирали формулу за Влоокуп са више критеријума. Међутим, значајно ограничење тог приступа је неопходност додавања помоћне колоне. Добра вест је да Екцелова функција ИНДЕКС МАТЦХ може да тражи и са два или више критеријума, без модификације или реструктурирања ваших изворних података!
Ево генеричке формуле ИНДЕКС МАТЦХ са више критеријума:
{=ИНДЕКС( опсег_поврата, МАТЦХ(1,