Функцията MATCH на Excel с примери за формула

  • Споделя Това
Michael Brown

Този урок обяснява как да използвате функцията MATCH в Excel с примери за формули. Той показва също как да подобрите формулите за търсене, като направите динамична формула с VLOOKUP и MATCH.

В Microsoft Excel има много различни функции за търсене/препратки, които могат да ви помогнат да намерите определена стойност в диапазон от клетки, и MATCH е една от тях. По принцип тя определя относителната позиция на даден елемент в диапазон от клетки. Функцията MATCH обаче може да прави много повече от чистата си същност.

    Функция MATCH на Excel - синтаксис и приложения

    Функцията MATCH в Excel търси определена стойност в диапазон от клетки и връща относителната позиция на тази стойност.

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

    MATCH(lookup_value, lookup_array, [match_type])

    Lookup_value (задължително) - стойността, която искате да намерите. Тя може да бъде числова, текстова или логическа стойност, както и препратка към клетка.

    Lookup_array (задължително) - обхватът от клетки, в които да се търси.

    Match_type (незадължително) - определя типа на съвпадение. Той може да бъде една от тези стойности: 1, 0, -1. Аргументът match_type, зададен на 0, връща само точното съвпадение, докато другите два типа позволяват приблизително съвпадение.

    • 1 или пропуснато (по подразбиране) - намира най-голяма стойност в масива за търсене, която е по-малка или равна на стойността за търсене. Изисква сортиране на масива за търсене във възходящ ред, от най-малкия до най-големия или от A до Z.
    • 0 - намиране на първата стойност в масива, която е точно равен към стойността за търсене. Не се изисква сортиране.
    • -1 - намерете най-малката стойност в масива, който е по-голям или равен на стойността за търсене. Масивът за търсене трябва да бъде подреден в низходящ ред, от най-големия към най-малкия или от Z към A.

    За да разберем по-добре функцията MATCH, нека направим проста формула въз основа на тези данни: имената на учениците в колона A и техните резултати от изпитите в колона B, подредени от най-голям към най-малък. За да откриете къде се намира конкретен ученик (напр, Лаура ), както и други, използват тази проста формула:

    =MATCH("Laura", A2:A8, 0)

    По желание можете да поставите стойността за търсене в някоя клетка (E1 в този пример) и да направите препратка към тази клетка във формулата за съответствие на Excel:

    =MATCH(E1, A2:A8, 0)

    Както виждате на снимката по-горе, имената на учениците са въведени в произволен ред и затова задаваме match_type на 0 (точно съвпадение), тъй като само този тип съвпадение не изисква сортиране на стойностите в масива за търсене. Технически формулата за съвпадение връща относителната позиция на Laura в диапазона. Но тъй като резултатите са подредени от най-голям към най-малък, тя ни казва също, че Laura има пети най-добър резултат сред всички ученици.

    Съвет: В Excel 365 и Excel 2021 можете да използвате функцията XMATCH, която е съвременен и по-мощен наследник на MATCH.

    4 неща, които трябва да знаете за функцията MATCH

    Както току-що видяхте, използването на MATCH в Excel е лесно. Въпреки това, както и при почти всяка друга функция, има няколко особености, които трябва да знаете:

    1. Функцията MATCH връща относителна позиция на стойността за търсене в масива, а не на самата стойност.
    2. MATCH е без значение на големи и малки букви , което означава, че не прави разлика между малки и големи букви при работа с текстови стойности.
    3. Ако масивът за търсене съдържа няколко срещания на стойността за търсене, се връща позицията на първата стойност.
    4. Ако стойността за търсене не е намерена в масива за търсене, се връща грешка #N/A.

    Как да използвате MATCH в Excel - примери за формули

    След като вече знаете основните приложения на функцията MATCH в Excel, нека обсъдим още няколко примера за формули, които надхвърлят основните.

    Частично съвпадение със заместващи символи

    Подобно на много други функции, MATCH разбира следните заместващи символи:

    • Въпросителен знак (?) - замества всеки отделен символ
    • Звездичка (*) - замества всяка последователност от символи

    Забележка: Заместващи символи могат да се използват само във формули за съвпадение с match_type зададена на 0.

    Формулата за съвпадение със заместващи знаци е полезна в ситуации, когато искате да съответствате не на целия текстов низ, а само на някои символи или на част от него. За да илюстрирате това, разгледайте следния пример.

    Да предположим, че имате списък с регионални дистрибутори и техните продажби за последния месец. Искате да намерите относителната позиция на определен дистрибутор в списъка (подреден по сумите на продажбите в низходящ ред), но не можете да си спомните точно името му, въпреки че помните няколко първи символа.

    Ако приемем, че имената на дистрибуторите са в диапазона A2:A11 и търсите името, което започва с "car", формулата е следната:

    =MATCH("car*", A2:A11,0)

    За да направите формулата за съвпадение по-универсална, можете да въведете стойността за търсене в някоя клетка (E1 в този пример) и да свържете тази клетка със заместващия символ по следния начин:

    =MATCH(E1& "*", A2:A11,0)

    Както е показано на скрийншота по-долу, формулата връща 2, което е позицията на "Carter":

    За да замените само един символ в стойността за търсене, използвайте оператора "?", както следва:

    =MATCH("ba?er", A2:A11,0)

    Горната формула ще съответства на името " Baker " и преизпълнете относителната му позиция, която е 5.

    Формула MATCH с отчитане на големи букви

    Както беше споменато в началото на този урок, функцията MATCH не прави разлика между главни и малки букви. За да създадете формула за съвпадение с отчитане на големи и малки букви, използвайте MATCH в комбинация с функцията EXACT, която сравнява клетките точно, включително и размера на символите.

    Това е общата формула за сравняване на данни с отчитане на големи и малки букви:

    MATCH(TRUE, EXACT( масив за търсене , стойност за търсене ), 0)

    Формулата работи със следната логика:

    • Функцията EXACT сравнява стойността за търсене с всеки елемент от масива за търсене. Ако сравняваните клетки са напълно равни, функцията връща TRUE, в противен случай FALSE.
    • И след това функцията MATCH сравнява TRUE (което е нейната lookup_value ) с всяка стойност в масива, върнат от EXACT, и връща позицията на първото съвпадение.

    Имайте предвид, че това е формула за масив, която изисква натискане на Ctrl + Shift + Enter, за да бъде изпълнена правилно.

    Ако приемем, че стойността за търсене е в клетка E1, а масивът за търсене е A2:A9, формулата е следната:

    =MATCH(TRUE, EXACT(A2:A9,E1),0)

    Следващата снимка показва формулата за съвпадение с отчитане на малки и големи букви в Excel:

    Сравнете 2 колони за съвпадения и разлики (ISNA MATCH)

    Проверката на два списъка за съвпадения и разлики е една от най-често срещаните задачи в Excel и може да се извърши по различни начини. Формулата ISNA/MATCH е един от тях:

    IF(ISNA(MATCH( 1-ва стойност в List1 , Списък2 , 0)), "Не е в списък 1", "")

    За всяка стойност от Списък 2, която не присъства в Списък 1, формулата връща " Не е в списък 1 ". И ето как:

    • Функцията MATCH търси стойност от Списък 1 в Списък 2. Ако е намерена стойност, тя връща относителната ѝ позиция, в противен случай - грешка #N/A.
    • Функцията ISNA в Excel прави само едно нещо - проверява за грешки #N/A (което означава "не е налично"). Ако дадена стойност е грешка #N/A, функцията връща TRUE, в противен случай FALSE. В нашия случай TRUE означава, че стойност от Списък 1 не е намерена в Списък 2 (т.е. грешка #N/A е върната от MATCH).
    • Тъй като за потребителите може да е много объркващо да виждат TRUE за стойности, които не фигурират в Списък 1, вие обвивате функцията IF около ISNA, за да се покаже " Не е в списък 1 " или какъвто искате текст.

    Например за сравняване на стойностите в колона B със стойностите в колона A формулата има следната форма (където B2 е най-горната клетка):

    =IF(ISNA(MATCH(B2,A:A,0)), "Не е в списък 1", "")

    Както си спомняте, функцията MATCH в Excel сама по себе си е безразлична към големи и малки букви. За да я накарате да разграничава големината на символите, вградете функцията EXACT в lookup_array и не забравяйте да натиснете Ctrl + Shift + Enter, за да завършите този формула за масив :

    =IF(ISNA(MATCH(TRUE, EXACT(A:A, B2),0)), "Не е в списък 1", "")

    Следната снимка на екрана показва двете формули в действие:

    За да научите други начини за сравняване на два списъка в Excel, вижте следния урок: Как да сравним 2 колони в Excel.

    Excel VLOOKUP и MATCH

    Този пример предполага, че вече имате някои основни познания за функцията VLOOKUP на Excel. Ако имате такива, вероятно сте се сблъскали с многобройните ѝ ограничения (подробен преглед на които можете да намерите в Защо VLOOKUP на Excel не работи) и търсите по-стабилна алтернатива.

    Един от най-неприятните недостатъци на VLOOKUP е, че той спира да работи след вмъкване или изтриване на колона в таблицата за търсене. Това се случва, защото VLOOKUP извлича съответстваща стойност въз основа на номера на колоната за връщане, който сте посочили (номер на индекса). индексен номер е "твърдо кодирана" във формулата, Excel не може да я коригира, когато в таблицата се добави или изтрие нова колона(и).

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

    За да разберем нещата по-лесно, нека отново използваме таблицата с резултатите от изпитите на учениците (подобна на тази, която използвахме в началото на този урок), но този път ще извличаме реалния резултат, а не неговата относителна позиция.

    Ако приемем, че стойността за търсене се намира в клетка F1, масивът на таблицата е $A$1:$C$2 (добра практика е да го заключите, като използвате абсолютни препратки към клетките, ако планирате да копирате формулата в други клетки), формулата е следната:

    =VLOOKUP(F1, $A$1:$C$8, 3, FALSE)

    Третият аргумент ( col_index_num ) се задава на 3, защото Резултат по математика която искаме да изтеглим, е третата колона в таблицата. Както можете да видите на снимката по-долу, тази обикновена формула Vlookup работи добре:

    Но само докато вмъкнете или изтриете колона(и):

    Защо се появява грешката #REF!? Защото col_index_num зададена на 3, казва на Excel да получи стойност от третата колона, докато сега в масива на таблицата има само 2 колони.

    За да предотвратите подобни неща, можете да направите формулата си за Vlookup по-динамична, като включите следната функция Match:

    MATCH(E2,A1:C1,0)

    Къде:

    • E2 е стойността за търсене, която е точно равен към името на връщащата колона, т.е. колоната, от която искате да изтеглите стойност ( Резултат по математика в този пример).
    • A1:C1 е масивът за търсене, който съдържа заглавията на таблиците.

    И сега включете тази функция Match в col_index_num аргумент на формулата Vlookup, например по следния начин:

    =VLOOKUP(F1,$A$1:$C$8, MATCH(E2,$A$1:$C$1, 0), FALSE)

    И се уверете, че тя работи безупречно, независимо колко колони добавяте или изтривате:

    В горната екранна снимка заключих всички препратки към клетките, за да работи формулата правилно, дори ако потребителите я преместят на друго място в работния лист. Както можете да видите на екранната снимка по-долу, формулата работи добре след изтриване на колона; освен това Excel е достатъчно умен, за да коригира правилно абсолютните препратки в този случай:

    Excel HLOOKUP и MATCH

    По подобен начин можете да използвате функцията MATCH на Excel, за да подобрите формулите си HLOOKUP. Общият принцип е по същество същият като при Vlookup: използвате функцията Match, за да получите относителната позиция на колоната за връщане, и предоставяте това число на функцията row_index_num на формулата Hlookup.

    Ако приемем, че стойността за търсене е в клетка B5, масивът на таблицата е B1:H3, името на върнатия ред (стойността за търсене за MATCH) е в клетка A6, а заглавията на редовете са A1:A3, пълната формула е следната:

    =HLOOKUP(B5, B1:H3, MATCH(A6, A1:A3, 0), FALSE)

    Както току-що видяхте, комбинацията от Hlookup/Vlookup & Match със сигурност е подобрение в сравнение с обикновените формули Hlookup и Vlookup. Въпреки това функцията MATCH не премахва всички техни ограничения. По-специално, формулата Vlookup Match все още не може да търси в лявата си част, а Hlookup Match не успява да търси във всеки ред, различен от най-горния.

    За да преодолеете горните (и някои други) ограничения, помислете за използване на комбинация от INDEX MATCH, която осигурява наистина мощен и универсален начин за търсене в Excel, превъзхождащ в много отношения Vlookup и Hlookup. Подробни указания и примери за формули можете да намерите в INDEX &; MATCH in Excel - a better alternative to VLOOKUP.

    Ето как се използват формулите MATCH в Excel. Надявам се, че примерите, разгледани в този урок, ще се окажат полезни в работата ви. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Практическа работна тетрадка за изтегляне

    Примери за формулата MATCH на Excel (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.