Оглавление
В этом уроке на примерах формул объясняется, как использовать функцию 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 очень просто. Однако, как и в случае почти с любой другой функцией, есть несколько особенностей, о которых вы должны знать:
- Функция MATCH возвращает относительное положение значения поиска в массиве, а не самого значения.
- МАТЧ - это без учета регистра то есть не различает строчные и прописные символы при работе с текстовыми значениями.
- Если массив поиска содержит несколько вхождений искомого значения, возвращается позиция первого значения.
- Если значение поиска не найдено в массиве поиска, возвращается ошибка #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)