XLOOKUP срещу INDEX-MATCH в Excel (всички възможни сравнения)

  • Споделя Това
Hugh West

Днес ще направя сравнителен анализ на XLOOKUP срещу Функции INDEX-MATCH в Excel . В по-ранните версии на Excel , използвахме HLOOKUP . VLOOKUP , и INDEX-MATCH функции за търсене на конкретна стойност в диапазон от клетки. Обаче с появата на Office 365 , Excel ни предостави нова и динамична функция, наречена XLOOKUP функция за извършване на подобна операция по по-сложен начин. В тази статия ще се опитам да сравня широко използваните функции, а именно XLOOKUP и INDEX-MATCH .

Изтегляне на работна тетрадка за практика

Вземете този примерен файл за по-добро разбиране.

Функции XLOOKUP и INDEX-MATCH.xlsx

Въведение във функцията XLOOKUP

Сайтът XLOOKUP Функцията се използва за намиране на конкретна стойност в рамките на диапазон от клетки или масив. След това тя връща съответното първо съвпадение. Тя показва и най-близкото или приблизително съвпадение, когато няма точно съвпадение.

Синтаксис:

=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])

Аргументи:

  • Lookup_value : Това е стойността, която търсим в конкретна колона на обхвата.
  • Lookup_array : Това е масивът, в който търсим lookup_value . Може да бъде както ред, така и колона.
  • Return_array: Това е колоната, от която е получена съответната стойност на lookup_value ще бъдат върнати.

Незадължителни аргументи:

  • If_not_found : Това е стойността, която ще бъде върната в случай, че lookup_array няма стойност lookup_value.
  • Match_mode : Това е число, обозначаващо типа на съвпадение на lookup_value Това е незадължителен аргумент. Той може да съдържа четири стойности.
  1. Когато е 0 , XLOOKUP ще търси точно съвпадение (по подразбиране).
  2. Когато е 1 , XLOOKUP Ако не бъде намерено точно съвпадение, ще бъде намерена следващата по-малка стойност.
  3. Когато е -1 , XLOOKUP Ако не бъде намерено точно съвпадение, ще бъде намерена следващата по-голяма стойност.
  4. Когато е 2 , XLOOKUP първо ще се търси приблизително съвпадение, като се използват заместващи символи (приложимо само за стойности за търсене на низове).
  • Search_mode : Това е число, обозначаващо вида на операцията за търсене, извършена върху масива lookup_array. То също не е задължително. Може да има и четири стойности:
  1. Ако е 1 , XLOOKUP ще търси отгоре надолу в lookup_array (По подразбиране).
  2. Когато е -1 , XLOOKUP ще търси отдолу нагоре в
  3. Ако е 2 , XLOOKUP ще се извърши двоично търсене във възходящ ред.
  4. Когато е -2 , XLOOKUP ще се извърши двоично търсене в низходящ ред.

Въведение във функциите INDEX-MATCH

Комбинацията от INDEX-MATCH се използва за извличане на стойност от дадено място и сравняването ѝ с изходния диапазон.

Синтаксис:

=INDEX(array,MATCH(lookup_value,lookup_array,match_type),no_of_column)

Аргументи:

За функцията INDEX:

  • Масив : Това е диапазон от клетки, от който искаме да извлечем стойност.
  • MATCH(lookup_value,lookup_array,match_type): Това е номерът на реда от диапазона, в който lookup_value съвпада с конкретна стойност в lookup_array .
  • No_of_column: Това е номерът на колоната от масива, от която искаме да върнем стойност, съответстваща на lookup_value .

За функцията MATCH:

  • Lookup_value: Това е стойността, която търсим.
  • Lookup_array: Това е масивът, в който търсим lookup_value Тя може да бъде както ред, така и колона.
  • Match_type: Това е цяло число, обозначаващо типа на търсеното съвпадение. Не е задължително.
  1. Когато е -1 , MATCH първо ще търси точно съвпадение. В случай че не бъде намерено точно съвпадение, ще се търси следващата по-голяма стойност (по подразбиране) (обратно на XLOOKUP ).

Но условието е, че lookup_array трябва да бъдат сортирани във възходящ ред. В противен случай ще бъде показана грешка.

  1. Когато е 1 , MATCH В случай че не бъде намерено точно съвпадение, ще се потърси следващата по-малка стойност (обратно на XLOOKUP ).

Но условието е, че lookup_array този път трябва да бъде подреден в низходящ ред. В противен случай ще се появи грешка.

  1. Когато е 0 , MATCH ще се търси точно съвпадение.

Прочетете още: Как да изберете конкретни данни в Excel (6 метода)

7 Сравнения между употребите на функциите XLOOKUP и INDEX-MATCH

Сега, след като разбихме формулата, нека обсъдим някои прилики и разлики между двете функции. Преди да преминем към основните дискусии, за ваше улеснение показвам основните моменти в таблица.

Точка на обсъждане Сходство/различно сходство Обяснение
Колона lookup_array Сходство И двата метода поддържат колона като масив за търсене (lookup_array).
Ред lookup_array Сходство И двата вида поддържат ред като масив за търсене (lookup_array).
Няма съвпадение на lookup_value Различие XLOOKUP има опция за настройка по подразбиране за липса на съвпадение на стойността на lookup_value. Но INDEX-MATCH няма такава опция.
Приблизително съвпадение Частично сходство XLOOKUP може да открие следващата по-малка или следващата по-голяма стойност, когато няма точно съвпадение. INDEX-MATCH също може да направи това, но масивът lookup_array трябва да бъде сортиран във възходящ или низходящ ред.
Съответстващи заместващи символи Сходство И двете поддържат съвпадение на Wildcards.
Съвпадение на множество стойности Частично сходство XLOOKUP може да открие първата или последната стойност, когато няколко стойности съвпадат. Но INDEX-MATCH може да върне само първата стойност, която съвпада.
Формула на масива Сходство И двете поддържат формулата за масиви.

1. XLOOKUP и INDEX-MATCH за търсене на стойност в колона

В този аспект има сходство между двете функции. XLOOKUP и INDEX-MATCH , масивът lookup_array може да бъде колона и за двете функции. Тук търсим точното Марки по физика на името на ученика в C ел F5 , Дженифър Марло . Искахме да търсим отгоре надолу в Име на ученика и връща " Не е намерен " в случай че не е намерено съвпадение.

  • За XLOOKUP , приложете формулата от Клетка G5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)

  • За INDEX-MATCH , използвайте тази формула в Клетка G5 .
=INDEX(B5:D16,MATCH(F5,C5:C16,0),3)

Прочетете още: Как да съпоставите няколко критерия от различни масиви в Excel

2. XLOOKUP и INDEX-MATCH за търсене на стойност в ред

В този аспект също има сходство между двете функции. За XLOOKUP и INDEX-MATCH . lookup_array може да бъде ред и за двете функции. За илюстрация, имаме нова съвкупност от данни с Идентификатори , Имена , и Марки по физика и Класове .

Да приемем за момент, че това е много широк набор от данни и не знаем какъв е броят на Клас След това, за да открием оценката на даден ученик, трябва да използваме Ред на заглавието (B4:E4) като масив за търсене и думата " Клас " като lookup_value Можем да го постигнем, като използваме едновременно XLOOKUP и INDEX-MATCH .

  • За да откриете класа на 3-ти ученик . XLOOKUP формулата ще бъде такава в Клетка G5 .
=XLOOKUP("Grade",B4:E4,B7:E7, "Not Found",0,1)

  • В този случай INDEX-MATCH формулата ще бъде:
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))

3. XLOOKUP и INDEX-MATCH, когато не е намерено съвпадение

Двете функции се различават в това отношение. Ако стойността на lookup_value не съвпада с никоя стойност в lookup_array , можете да зададете фиксирана стойност, която да се връща в XLOOKUP За да направите това, трябва да зададете тази стойност в if_not_found от друга страна, няма такава опция в INDEX-MATCH . Той ще върне грешка. Трябва да използвате функцията IFERROR навън, за да се справим с грешката. В дадения набор от данни ще открием Име на ученика с ID 100 .

  • За тази цел използвайте следното XLOOKUP формула в Клетка G5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)

  • От друга страна, приложете този INDEX-MATCH формула.
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)

  • Тъй като тя връща грешка, трябва да използвате IFERROR функцията навън, за да се справи с тази грешка.
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2), "Не е намерен")

Подобни четива

  • INDEX MATCH на Excel за връщане на няколко стойности в една клетка
  • Формула INDEX-MATCH на Excel за връщане на множество стойности хоризонтално
  • Как да използвате формулата INDEX-MATCH в Excel за генериране на множество резултати
  • [Поправено!] INDEX MATCH не връща правилната стойност в Excel (5 причини)
  • Как да използвате INDEX MATCH вместо VLOOKUP в Excel (3 начина)

4. XLOOKUP и INDEX-MATCH в случай на приблизителни съвпадения

В този аспект съществува частично сходство между двете функции. XLOOKUP функция, ако lookup_value не съвпада с никоя стойност в lookup_array , можете да промените формулата, за да върне следващата по-малка или следващата по-голяма стойност. Задайте аргумента match_type към -1 ако искате следващата по-малка стойност, и я задайте на 1 ако искате следващата по-голяма стойност.

Например, ще открием ученика с оценка 50 или следващия по-голям знак.

  • За да намерите стойността, приложете следното XLOOKUP формула.
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)

  • Както можете да видите, няма ученик с оценка 50 . Ето защо се показва този, който е непосредствено след 50 , 51 от Дезмънд Хейс .

Същата опция има и в INDEX-MATCH Но недостатъкът е, че трябва да сортирате масива lookup_array в низходящ ред, ако искате следващата по-голяма стойност. В противен случай ще се върне грешка. А за да получите следващата по-малка стойност, трябва да сортирате във възходящ ред.

  • Най-напред вмъкнете тази формула в Клетка G5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)

  • В резултат на това ще видите, че резултатът показва #N/A грешка.
  • Затова подредете Клетъчен диапазон D5:D16 във възходящ ред и ще получите правилната стойност.

Специална забележка: В XLOOKUP функция, -1 работи за следващата по-малка стойност, но в INDEX-MATCH , -1 работи за следващата по-голяма стойност. По същия начин в XLOOKUP 1 работи за следващата по-голяма стойност, но в INDEX-MATCH, 1 работи за следващата по-малка стойност.

Прочетете още: Как да използвате INDEX и Match за частично съвпадение (2 начина)

5. XLOOKUP и INDEX-MATCH в случай на съвпадение на заместващи символи

В този аспект двете функции си приличат. XLOOKUP и INDEX-MATCH , и двете подкрепят Wildcards . Тук ще открием всеки ученик с " Марло " като второ име. Нека следваме стъпките по-долу, за да видим XLOOKUP срещу INDEX-MATCH сравнение.

  • Първо, приложете този XLOOKUP формула в Клетка G5 за да получите резултата.
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)

Забележка: Използване на заместващи символи в XLOOKUP , трябва да зададете match_type аргумент към 2 . В противен случай няма да работи.

  • От друга страна, INDEX-MATCH формулата за изпълнение на същата задача е следната.
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)

Прочетете още: INDEX MATCH множество критерии с Wildcard в Excel (пълно ръководство)

6. XLOOKUP и INDEX-MATCH Когато няколко стойности съвпадат със стойността за търсене

Този пример показва XLOOKUP срещу INDEX-MATCH когато няколко стойности съвпадат със стойността за търсене. В това отношение също има частично сходство между двете функции. XLOOKUP и INDEX-MATCH и двете връщат само една стойност, в случай че има няколко стойности в lookup_array съвпада с lookup_value . Но в XLOOKUP можете да модифицирате търсенето, за да получите първото или последното съвпадение. За да получите първата съвпадаща стойност, задайте search_type аргумент към 1 . И за да получите последната съвпадаща стойност, задайте search_type аргумент към -1 . Но в INDEX-MATCH нямате избор. Ще получите само първата стойност, която съвпада.

  • За да получите първия ученик, който е получил 100 , можете да използвате това XLOOKUP формула в Клетка G5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)

  • Заедно с него ще получите и последния ученик с 100 като използвате този XLOOKUP формула.
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)

  • Напротив, ще получите само първата стойност, която съвпада с тази INDEX-MATCH формула.
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)

7. XLOOKUP и INDEX-MATCH в случай на множество стойности за търсене

В този пример ще демонстрираме XLOOKUP срещу INDEX-MATCH в случай на множество стойности за търсене. В това отношение между двете функции има сходство. И двете позволяват множество lookup_values (Формула на масива).

  • За XLOOKUP ще работи следната формула.
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)

  • Тогава за INDEX-MATCH , ще работи и следната функция.
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)

Предимства & Недостатъци на функцията XLOOKUP

Има някои предимства и недостатъци при използването на XLOOKUP функция. Нека ги разгледаме накратко.

Предимства

  • Задайте стойност по подразбиране за случаи без съвпадение.
  • Може да търсите приблизителни съвпадения, без да сортирате lookup_array .
  • Имате достъп до търсене както от първата, така и от последната клетка на lookup_array .

Недостатъци

  • Работи по-бавно от INDEX-MATCH функция.
  • Предлага се в Office 365 само.

Предимства & Недостатъци на функциите INDEX-MATCH

Сайтът INDEX-MATCH има и някои от следните плюсове и минуси.

Предимства

  • Работи по-бързо от XLOOKUP функция.
  • Предлага се в стария Excel версии.

Недостатъци

  • Не може да обработва грешки, когато не е намерено съвпадение.
  • Нуждае се от lookup_array да бъдат сортирани за приблизителни съвпадения.
  • Връща само първата стойност, когато няколко стойности отговарят на lookup_value .

Заключение

Най-накрая сме в края на нашата дълга статия. Тук се опитахме да направим сравнителен анализ на XLOOKUP срещу INDEX-MATCH функции в Excel. Споделете с нас вашите проницателни предложения по този въпрос. ExcelWIKI за повече уроци.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.