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

  • Поделись Этим
Michael Brown

В этом уроке на примерах формул объясняется, как использовать функцию MATCH в Excel, а также показывается, как улучшить формулы поиска, создавая динамические формулы с помощью VLOOKUP и MATCH.

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

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

    Функция MATCH в Excel ищет заданное значение в диапазоне ячеек и возвращает относительное положение этого значения.

    Синтаксис функции MATCH следующий:

    MATCH(lookup_value, lookup_array, [match_type])

    Поиск_значения (требуется) - значение, которое вы хотите найти. Это может быть числовое, текстовое или логическое значение, а также ссылка на ячейку.

    Lookup_array (требуется) - диапазон ячеек для поиска.

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

    • 1 или опущен (по умолчанию) - найти наибольшее значение в массиве поиска, который меньше или равен значению поиска. Требуется сортировка массива поиска в порядке возрастания, от наименьшего к наибольшему или от A к Z.
    • 0 - найти первое значение в массиве, которое является абсолютно одинаковый к значению поиска. Сортировка не требуется.
    • -1 - найти наименьшее значение в массиве, который больше или равен значению поиска. Массив поиска должен быть отсортирован в порядке убывания, от наибольшего к наименьшему или от Z к A.

    Чтобы лучше понять функцию MATCH, давайте составим простую формулу на основе этих данных: имена студентов в столбце A и их экзаменационные баллы в столбце B, отсортированные от наибольшего к наименьшему. Чтобы узнать, где находится конкретный студент (скажем, Лаура ), среди прочих, используют эту простую формулу:

    =MATCH("Лаура", A2:A8, 0)

    Кроме того, вы можете поместить значение поиска в некоторую ячейку (E1 в данном примере) и сослаться на эту ячейку в формуле Excel Match:

    =MATCH(E1, A2:A8, 0)

    Как вы видите на скриншоте выше, имена студентов вводятся в произвольном порядке, поэтому мы устанавливаем параметр тип_соответствия в 0 (точное совпадение), поскольку только этот тип совпадения не требует сортировки значений в массиве поиска. Технически, формула Match возвращает относительное положение Лоры в диапазоне. Но поскольку баллы отсортированы от наибольшего к наименьшему, она также сообщает нам, что Лора имеет 5-й лучший балл среди всех студентов.

    Совет. В Excel 365 и Excel 2021 можно использовать функцию XMATCH, которая является современным и более мощным преемником MATCH.

    4 вещи, которые вы должны знать о функции MATCH

    Как вы только что убедились, использовать MATCH в Excel очень просто. Однако, как и в случае почти с любой другой функцией, есть несколько особенностей, о которых вы должны знать:

    1. Функция MATCH возвращает относительное положение значения поиска в массиве, а не самого значения.
    2. МАТЧ - это без учета регистра то есть не различает строчные и прописные символы при работе с текстовыми значениями.
    3. Если массив поиска содержит несколько вхождений искомого значения, возвращается позиция первого значения.
    4. Если значение поиска не найдено в массиве поиска, возвращается ошибка #N/A.

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

    Теперь, когда вы знаете основные способы использования функции Excel MATCH, давайте обсудим еще несколько примеров формул, которые выходят за рамки основ.

    Частичное совпадение с подстановочными знаками

    Как и многие другие функции, MATCH понимает следующие символы подстановки:

    • Вопросительный знак (?) - заменяет любой отдельный символ
    • Звездочка (*) - заменяет любую последовательность символов

    Примечание. Подстановочные знаки можно использовать только в формулах соответствия с тип_соответствия установлено на 0.

    Формула Match с подстановочными знаками может быть полезна в ситуациях, когда нужно сопоставить не весь текст строки, а только некоторые символы или часть строки. Чтобы проиллюстрировать этот момент, рассмотрим следующий пример.

    Предположим, у вас есть список региональных торговых посредников и их объемы продаж за последний месяц. Вы хотите найти относительное положение определенного торгового посредника в списке (отсортированном по объему продаж в порядке убывания), но не можете точно вспомнить его имя, хотя помните несколько первых символов.

    Предположим, что имена посредников находятся в диапазоне A2:A11, и вы ищете имя, начинающееся с "car", формула выглядит следующим образом:

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

    Чтобы сделать нашу формулу Match более универсальной, вы можете ввести значение поиска в некоторую ячейку (E1 в данном примере) и объединить эту ячейку с символом подстановки, как показано ниже:

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

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

    Чтобы заменить только один символ в значении поиска, используйте оператор подстановки "?", как показано ниже:

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

    Приведенная выше формула будет соответствовать имени " Бейкер " и повторно запустить его относительное положение, которое равно 5.

    Формула MATCH с учетом регистра

    Как упоминалось в начале этого руководства, функция MATCH не различает прописные и строчные символы. Чтобы сделать формулу Match с учетом регистра, используйте MATCH в сочетании с функцией EXACT, которая сравнивает ячейки точно, включая регистр символов.

    Вот общая формула для сопоставления данных с учетом регистра:

    MATCH(TRUE, EXACT( массив поиска , значение поиска ), 0)

    Формула работает по следующей логике:

    • Функция EXACT сравнивает искомое значение с каждым элементом массива поиска. Если сравниваемые элементы в точности равны, функция возвращает TRUE, в противном случае - FALSE.
    • А затем функция MATCH сравнивает TRUE (что является ее поиск_значения ) с каждым значением в массиве, возвращаемом EXACT, и возвращает позицию первого совпадения.

    Пожалуйста, имейте в виду, что это формула массива, для правильного завершения которой необходимо нажать Ctrl + Shift + Enter.

    Если предположить, что значение поиска находится в ячейке E1, а массив поиска - A2:A9, то формула будет выглядеть следующим образом:

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

    На следующем снимке экрана показана формула Match с учетом регистра в Excel:

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

    Проверка двух списков на совпадения и различия - одна из самых распространенных задач в Excel, и ее можно выполнить различными способами. Формула ИСТИНА/МАТЧ - один из них:

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

    Для любого значения из списка 2, которого нет в списке 1, формула возвращает " Нет в списке 1 ". И вот как:

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

    Например, чтобы сравнить значения в столбце B со значениями в столбце A, формула принимает следующий вид (где B2 - самая верхняя ячейка):

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

    Как вы помните, функция MATCH в Excel сама по себе нечувствительна к регистру символов. Чтобы заставить ее различать регистр символов, встройте функцию EXACT в функцию массив поиска аргумент, и не забудьте нажать Ctrl + Shift + Enter для завершения этого формула массива :

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

    На следующем снимке экрана показаны обе формулы в действии:

    Чтобы узнать другие способы сравнения двух списков в Excel, обратитесь к следующему руководству: Как сравнить 2 столбца в Excel.

    Excel VLOOKUP и MATCH

    Этот пример предполагает, что вы уже обладаете базовыми знаниями о функции Excel VLOOKUP. И если это так, то есть вероятность, что вы столкнулись с ее многочисленными ограничениями (подробный обзор которых можно найти в статье Почему Excel VLOOKUP не работает) и ищете более надежную альтернативу.

    Одним из самых неприятных недостатков VLOOKUP является то, что он перестает работать после вставки или удаления столбца в таблице поиска. Это происходит потому, что VLOOKUP извлекает соответствующее значение, основываясь на номере возвращаемого столбца, который вы указали (номер индекса). Так как индексный номер "жестко закодирована" в формуле, Excel не может скорректировать ее, когда в таблицу добавляется или удаляется новый столбец (столбцы).

    Функция Excel MATCH работает с относительное положение значения поиска, что делает его идеально подходящим для col_index_num Другими словами, вместо того, чтобы указывать возвращаемый столбец как статическое число, вы используете MATCH для получения текущей позиции этого столбца.

    Чтобы было проще понять, давайте снова воспользуемся таблицей с экзаменационными оценками студентов (аналогичной той, которую мы использовали в начале этого руководства), но на этот раз мы будем извлекать реальную оценку, а не ее относительное положение.

    Если предположить, что значение поиска находится в ячейке F1, массив таблицы - $A$1:$C$2 (если вы планируете копировать формулу в другие ячейки, рекомендуется зафиксировать ее с помощью абсолютных ссылок на ячейки), то формула будет выглядеть следующим образом:

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

    3-й аргумент ( 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

    Аналогичным образом вы можете использовать функцию Excel MATCH для улучшения формул 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 в Excel - лучшая альтернатива VLOOKUP.

    Вот так можно использовать формулы MATCH в Excel. Надеюсь, примеры, рассмотренные в этом уроке, окажутся полезными в вашей работе. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Рабочая тетрадь для тренировок для скачивания

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

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.