Съдържание
В урока се представя новата функция XMATCH на Excel и се показва как тя е по-добра от MATCH за решаване на няколко често срещани задачи.
В Excel 365 беше добавена функцията XMATCH, за да замени функцията MATCH. Но преди да започнете да обновявате съществуващите си формули, би било разумно да разберете всички предимства на новата функция и по какво се различава от старата.
В обобщение, функцията XMATCH е същата като MATCH, но е по-гъвкава и надеждна. Тя може да търси както във вертикални, така и в хоризонтални масиви, да търси от първия до последния или от последния до първия, да намира точни, приблизителни и частични съвпадения и да използва по-бърз алгоритъм за двоично търсене.
Функция XMATCH на Excel
Функцията XMATCH в Excel връща относителната позиция на дадена стойност в масив или диапазон от клетки.
Синтаксисът му е следният:
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])Къде:
Lookup_value (задължително) - стойността, която се търси.
Lookup_array (задължително) - масивът или диапазонът от клетки, в които да се търси.
Match_mode (незадължително) - указва кой тип съвпадение да се използва:
- 0 или пропуснато (по подразбиране) - точно съвпадение
- -1 - точно съвпадение или следващата най-малка стойност
- 1 - точно съвпадение или следващата по големина стойност
- 2 - заместващо съответствие (*, ?)
Search_mode (незадължително) - указва посоката на търсене и алгоритъма:
- 1 или пропуснато (по подразбиране) - търсене от първия до последния.
- -1 - търсене в обратен ред от последния към първия.
- 2 - възходящо двоично търсене. Изисквания lookup_array да бъдат подредени във възходящ ред.
- -2 - двоично търсене в низходящ ред. Изисквания lookup_array да бъдат подредени в низходящ ред.
Бинарното търсене е по-бърз алгоритъм, който работи ефективно върху сортирани масиви. За повече информация вижте Режим на търсене.
В коя версия на Excel има XMATCH?
Функцията XMATCH е налична само в Excel за Microsoft 365 и Excel 2021. В Excel 2019, Excel 2016 и по-ранни версии тази функция не се поддържа.
Основна формула XMATCH в Excel
За да добиете обща представа за възможностите на функцията, нека създадем формула XMATCH в нейната най-проста форма, като дефинираме само първите два задължителни аргумента, а незадължителните оставим по подразбиране.
Да предположим, че имате списък с океани, подредени по големина (C2:C6), и искате да намерите ранга на конкретен океан. За да го направите, просто използвайте името на океана, например Индийски , като стойност за търсене, а целият списък с имена - като масив за търсене:
=XMATCH("Индийски", C2:C6)
За да направите формулата по-гъвкава, въведете интересуващия ви океан в някоя клетка, например F1:
=XMATCH(F1, C2:C6)
В резултат на това получавате формула XMATCH, която да потърсите в вертикален масив . Изходът е относителната позиция на стойността за търсене в масива, която в нашия случай съответства на ранга на океана:
Подобна формула работи отлично за хоризонтален масив Всичко, което трябва да направите, е да настроите lookup_array справка:
=XMATCH(B5, B1:F1)
Функцията XMATCH на Excel - неща, които трябва да запомните
За да използвате ефективно XMATCH в работните си листове и да предотвратите неочаквани резултати, моля, запомнете тези 3 прости факта:
- Ако в масива за търсене има две или повече срещания на стойността за търсене, позицията на първи мач се връща, ако search_mode е зададен на 1 или е пропуснат. с search_mode на -1, функцията търси в обратен ред и връща позицията на последен мач както е показано в този пример.
- Ако стойността за търсене не е намерен , се появява грешка #N/A.
- Функцията XMATCH е без значение на големи и малки букви За да разграничите малките и големите букви, използвайте тази формула XMATCH, която отчита малкия и големия размер на буквите.
Как да използвате XMATCH в Excel - примери за формули
Следващите примери ще ви помогнат да се запознаете по-добре с функцията XMATCH и нейните практически приложения.
Точно съвпадение срещу приблизително съвпадение
Поведението на съвпадение на XMATCH се контролира от незадължителния match_mode аргумент:
- 0 или пропуснато (по подразбиране) - формулата търси само точно съвпадение. Ако не бъде намерено точно съвпадение, се връща грешка #N/A.
- -1 - формулата първо търси точното съвпадение, а след това следващия по-малък елемент.
- 1 - формулата първо търси точното съвпадение, а след това следващия по-голям елемент.
А сега нека видим как различните режими на съвпадение влияят на резултата от формулата. Да предположим, че искате да разберете къде сред всички океани се намира определена площ, да речем 80 000 000 km2.
Точно съвпадение
Ако използвате 0 за match_mode , ще получите грешка #N/A, тъй като формулата не може да намери стойност, която да е точно равна на стойността за търсене:
=XMATCH(80000000, C2:C6, 0)
Следващ най-малък елемент
Ако използвате -1 за match_mode , формулата ще върне 3, тъй като най-близкото съвпадение, по-малко от стойността на търсенето, е 70 560 000 и това е третият елемент в масива за търсене:
=XMATCH(80000000, C2:C6, -1)
Следващ по големина елемент
Ако използвате 1 за match_mode , формулата ще даде резултат 2, тъй като най-близкото съвпадение, по-голямо от стойността на търсенето, е 85 133 000, което е вторият елемент в масива за търсене:
=XMATCH(80000000, C2:C6, -1)
На изображението по-долу са показани всички резултати:
Как да съпоставяте частичен текст в Excel със заместващи символи
Функцията XMATCH има специален режим на съвпадение за заместващи символи: match_mode аргумент, зададен на 2.
В режим на съпоставяне със заместващи знаци формулата XMATCH приема следните заместващи знаци:
- Въпросителен знак (?) за съвпадение с всеки отделен символ.
- Звездичка (*) за съвпадение на всяка последователност от символи.
Имайте предвид, че заместващите символи работят само с текст, а не с числа.
Например за намиране на позицията на първия елемент, който започва с "south", формулата е:
=XMATCH("south*", B2:B6, 2)
Или можете да въведете заместващия си израз в някоя клетка, например F1, и да предоставите референцията към клетката за lookup_value аргумент:
=XMATCH(F1, B2:B6, 2)
При повечето функции на Excel ще използвате тилда (~), за да третирате звездичката (~*) или въпросителния знак (~?) като буквални символи, а не като заместващи символи. При XMATCH тилда не е необходима. Ако не определите режим на съвпадение на заместващи символи, XMATCH ще приеме, че ? и * са обикновени символи.
Например следната формула ще търси в диапазона A2:A7 точно символа звездичка:
=XMATCH("*", A2:A7)
XMATCH обратно търсене за намиране на последното съвпадение
В случай че в масива за търсене има няколко срещания на стойността за търсене, понякога може да се наложи да получите позицията на последна поява .
Посоката на търсене се контролира от четвъртия аргумент на XMATCH с име search_mode . Търсене в обратен ред, т.е. отдолу нагоре във вертикален масив и отдясно наляво в хоризонтален масив, search_mode трябва да се зададе стойност -1.
В този пример ще върнем позицията на последния запис за определена стойност на търсене (моля, вижте снимката по-долу). За целта задайте аргументите, както следва:
- Lookup_value - целевия търговец в H1
- Lookup_array - имена на продавачи в C2:C10
- Match_mode е 0 или е пропусната (точно съвпадение)
- Search_mode е -1 (от последния към първия)
Като съберем четирите аргумента, получаваме тази формула:
=XMATCH(H1, C2:C10, 0, -1)
Което връща номера на последната продажба, извършена от Laura:
Как да сравним две колони в Excel за съвпадение
За да сравните два списъка за съвпадения, можете да използвате функцията XMATCH заедно с IF и ISNA:
IF( ISNA( XMATCH( target_list , search_list , 0)), "Няма съвпадение", "Съвпадение")Например за сравняване на списък 2 в B2:B10 със списък 1 в A2:A10 формулата има следния вид:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Съвпадение в списък 1")
В този пример идентифицираме само съвпадения, затова value_if_true на функцията IF е празен низ ("").
Въведете горната формула в най-горната клетка (C2 в нашия случай), натиснете Enter , и тя автоматично ще се "прелее" в другите клетки (нарича се диапазон на преливане):
Как работи тази формула
В основата на формулата е функцията XMATCH, която търси стойност от Списък 2 в Списък 1. Ако бъде намерена стойност, се връща нейната относителна позиция, в противен случай се връща грешка #N/A. В нашия случай резултатът от XMATCH е следният масив:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;#N/A;8;#N/A}
Този масив се "подава" на функцията ISNA, за да се провери за грешки #N/A. За всяка грешка #N/A ISNA връща TRUE; за всяка друга стойност - FALSE. В резултат се получава следният масив от логически стойности, където TRUE представлява несъответствия, а FALSE - съвпадения:
{ИСТИНА;ВЯРНО;НЕВЯРНО;ВЯРНО;НЕВЯРНО;ВЯРНО;ВЯРНО;ВЯРНО;НЕВЯРНО;ВЯРНО}
Горният масив преминава към логическия тест на функцията IF. В зависимост от това как сте конфигурирали последните два аргумента, формулата ще изведе съответния текст. В нашия случай това е празен низ ("") за несъвпадения ( value_if_true ) и "Match in List 1" за съвпадения ( value_if_false ).
Забележка: Тази формула работи само в Excel 365 и Excel 2021, които поддържат динамични масиви. Ако използвате Excel 2019, Excel 2016 или по-ранна версия, моля, разгледайте други решения: Как да сравним две колони в Excel.
INDEX XMATCH в Excel
XMATCH може да се използва в комбинация с функцията INDEX за извличане на стойност от друга колона, свързана със стойността на търсенето, точно както формулата INDEX MATCH. Общият подход е следният:
INDEX ( връщане на _ масив , XMATCH ( lookup_value , lookup_array )Логиката е много ясна и лесна за следване:
Функцията XMATCH изчислява относителната позиция на стойността за търсене в масива за търсене и я предава на функцията row_num Въз основа на номера на реда функцията INDEX връща стойност от всяка колона, която сте посочили.
Например, за да намерите площта на океана в E1, можете да използвате тази формула:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH за извършване на двуизмерно търсене
За да търсите едновременно в колони и редове, използвайте INDEX заедно с две функции XMATCH. Първата функция XMATCH ще получи номера на реда, а втората - номера на колоната:
INDEX ( данни , XMATCH ( lookup_value , вертикален _ lookup_array ), XMATCH ( стойност за търсене , хоризонтален _ lookup_array ))Формулата е подобна на INDEX MATCH MATCH с тази разлика, че можете да пропуснете match_mode тъй като по подразбиране е зададено точно съвпадение.
Например за извличане на брой продажби за даден артикул (G1) в определен месец (G2) формулата е:
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Където B2:D8 са клетки с данни, с изключение на заглавията на редовете и колоните, A2:A8 е списък с елементи, а B1:D1 са имена на месеци.
Формула XMATCH, чувствителна към малки и големи букви
Както вече беше споменато, функцията XMATCH на Excel по замисъл е безразлична към големи и малки букви. За да я накарате да различава големи и малки букви в текста, използвайте XMATCH в комбинация с функцията EXACT:
MATCH(TRUE, EXACT( lookup_array , lookup_value ))Търсене в обратен ред от последен на първи:
MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)Следващият пример показва тази обща формула в действие. Да предположим, че имате списък с идентификационни номера на продукти, чувствителни към големи и малки букви, в B2:B11. Търсите да намерите относителната позиция на елемента в E1. Формулата за чувствителност към големи и малки букви в E2 е толкова проста, колкото тази:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Как работи тази формула:
Функцията EXACT сравнява стойността за търсене с всеки елемент от масива за търсене. Ако сравняваните стойности са абсолютно еднакви, включително случаят на символите, функцията връща TRUE, в противен случай FALSE. Този масив от логически стойности (където TRUE представлява точно съвпадение) отива в lookup_array И тъй като стойността за търсене е TRUE, функцията XMATCH връща позицията на първото намерено точно съвпадение или на последното точно съвпадение, в зависимост от това как сте конфигурирали search_mode аргумент.
XMATCH срещу MATCH в Excel
XMATCH е проектиран като по-мощен и универсален заместител на MATCH и затова тези две функции имат много общо помежду си. Въпреки това има съществени разлики.
Различно поведение по подразбиране
По подразбиране функцията MATCH избира точно съвпадение или следващия най-малък елемент ( match_type зададено на 1 или пропуснато).
Функцията XMATCH по подразбиране е с точно съвпадение ( match_mode зададена на 0 или пропусната).
Различно поведение при приблизително съвпадение
Когато match_mode / match_type се задава стойност 1:
- MATCH търси точно съвпадение или следващото най-малкото. Изисква масивът за търсене да бъде подреден във възходящ ред.
- XMATCH търси точно съвпадение или следващото най-голямо. Не изисква сортиране.
Когато match_mode / match_type се настройва на -1:
- MATCH търси точно съвпадение или следващото по големина. Изисква сортиране на масива за търсене в низходящ ред.
- XMATCH търси точно съвпадение или следващото най-малкото. Не изисква сортиране.
Търсене с уайлдкард
За да намерите частични съвпадения с XMATCH, трябва да зададете match_mode до 2.
Функцията MATCH няма специална опция за режим на съвпадение със заместващи символи. В повечето случаи ще я конфигурирате за точно съвпадение ( match_type 0), което работи и при търсене със заместващи символи.
Режим на търсене
Подобно на новата функция XLOOKUP, XMATCH има специална функция search_mode аргумент, който ви позволява да дефинирате посока на търсене :
- 1 или пропуснато (по подразбиране) - търсене от първо до последно.
- -1 - обратно търсене от последен към първи.
И изберете алгоритъм за двоично търсене , която е много бърза и ефективна в сортирани данни .
- 2 - двоично търсене на данни, подредени във възходящ ред.
- -2 - двоично търсене на данни, подредени в низходящ ред.
Бинарно търсене , наричан също търсене по полуинтервал или логаритмично търсене , е специален алгоритъм, който намира позицията на търсената стойност в масив, като я сравнява със средния елемент на масива. Двоичното търсене е много по-бързо от обикновеното търсене, но работи правилно само при сортирани списъци. При несортирани данни то може да върне грешни резултати, които на пръв поглед да изглеждат съвсем нормално.
Синтаксисът на MATCH изобщо не предвижда аргумент за режим на търсене.
XMATCH обработва масиви в естествен вид
За разлика от своя предшественик функцията XMATCH е проектирана за динамичен Excel и обработва масиви по естествен начин, без да се налага да натискате Ctrl + Shift + Enter . Това прави съставянето и редактирането на формули много по-лесно, особено когато използвате няколко различни функции заедно. Просто сравнете следните решения:
- Формула, при която се отчитат малки и големи букви: XMATCH
- Сравняване на две колони или списъци за съвпадения: XMATCH
Наличие на XMATCH и MATCH
XMATCH е нова функция и е налична само в Excel за Microsoft 365 и Excel 2021.
Функцията MATCH е налична във всяка версия на Excel 365 до Excel 2007.
Това е начинът за използване на функцията XMATCH в Excel. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!
Практическа работна тетрадка за изтегляне
Примери за формула на Excel XMATCH (.xlsx файл)