Поиск позиций с помощью MATCH
Находите позицию значения в строке или столбце
«Поиск позиций с помощью MATCH» — бесплатный урок Excel Formulas Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Excel Formulas Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Excel Formulas Academy содержит 4 уроков всего.
Знакомство с функцией MATCH
Если INDEX получает значение по позиции, то MATCH выполняет обратную задачу: сообщает, на какой позиции находится значение.
Вы передаёте MATCH значение для поиска и диапазон, в котором нужно искать, а функция возвращает число — позицию, на которой было найдено это значение.
MATCH не возвращает само значение, а только его местоположение. Именно это число нужно INDEX для работы.
Синтаксис MATCH
MATCH принимает три аргумента:
- значение_для_поиска — значение, которое Вы хотите найти
- массив_для_поиска — диапазон для поиска
- тип_сопоставления — способ сопоставления: 0, 1 или -1
Обычно функция записывается так: =MATCH("Cherry", B2:B6, 0). Последний 0 означает "найти точное совпадение".
Для обычного поиска почти всегда используется 0.
=MATCH("Cherry", B2:B6, 0)Чтение результата
Предположим, в B2:B6 находятся Яблоко, Банан, Вишня, Финик и Инжир. Выполнение =MATCH("Cherry", B2:B6, 0) возвращает 3.
Почему 3? Потому что Вишня — 3-й элемент диапазона. MATCH отсчитал позиции от начала B2:B6 и нашёл Вишню на позиции 3.
Обратите внимание: результатом является номер позиции, а не слово «Вишня». Эту позицию Вы передадите INDEX в следующем уроке.
=MATCH("Cherry", B2:B6, 0)Почему важен тип сопоставления 0
Третий аргумент управляет способом поиска MATCH:
- 0 — точное совпадение; значение должно быть найдено без изменений, порядок может быть любым
- 1 — наибольшее значение, меньшее или равное искомому; данные должны быть отсортированы по возрастанию
- -1 — наименьшее значение, большее или равное искомому; данные должны быть отсортированы по убыванию
Для поиска конкретного элемента, например кода товара или имени, всегда используйте 0. Остальные режимы предназначены для отсортированных числовых диапазонов.
=MATCH("East", A2:A20, 0)Сопоставление чисел
MATCH одинаково хорошо работает и с числами, и с текстом. Если в C2:C8 находятся идентификаторы заказов и Вы хотите узнать, где находится ID 5042, введите =MATCH(5042, C2:C8, 0).
Если 5042 находится в 4-й строке этого диапазона, MATCH возвращает 4.
Искомым значением также может быть ссылка на ячейку. Формула =MATCH(E1, C2:C8, 0) находит любой идентификатор, введённый в E1, поэтому поиск обновляется при изменении E1.
=MATCH(E1, C2:C8, 0)Поиск по строке
MATCH неважно, расположен ли Ваш диапазон вертикально или горизонтально. Функция просто отсчитывает позиции.
Предположим, в строке 1 в B1:M1 находятся заголовки месяцев: Янв, Фев, Мар и так далее. Чтобы узнать, в каком столбце находится «Мар», введите =MATCH("Mar", B1:M1, 0); результатом будет 3.
Такое горизонтальное использование необходимо для двустороннего поиска, при котором позиция строки и позиция столбца находятся отдельно.
=MATCH("Mar", B1:M1, 0)Когда MATCH не может найти значение
Если искомого значения нет в диапазоне, MATCH возвращает ошибку #N/A, которая просто означает "недоступно".
Например, формула =MATCH("Mango", B2:B6, 0) для списка без Манго возвращает #N/A.
Это нормальное поведение, а не признак неисправности формулы. Позже Вы обернёте формулы поиска в IFNA или IFERROR, чтобы вместо необработанной ошибки показывать понятное сообщение.
=MATCH("Mango", B2:B6, 0)Точное совпадение не зависит от порядка
Большое преимущество match_type 0 заключается в том, что данные не нужно сортировать. MATCH просматривает диапазон и возвращает позицию первого найденного точного совпадения.
Поэтому независимо от того, расположен ли список регионов по алфавиту или полностью перемешан, формула =MATCH("West", A2:A20, 0) всё равно правильно находит Запад.
Именно эта свобода делает точное совпадение стандартным выбором почти для любого поиска в реальных задачах.
=MATCH("West", A2:A20, 0)Приближенное совпадение для отсортированных данных
Тип сопоставления 1 полезен для диапазонов и уровней. В отсортированном по возрастанию списке пороговых значений MATCH находит наибольшее значение, которое всё ещё меньше или равно искомому.
Если в A2:A6 находятся значения 0, 100, 500, 1000 и 5000, а Вы выполняете =MATCH(750, A2:A6, 1), результатом будет 3, поскольку 500 — самый высокий порог, не превышающий 750.
Так таблицы оценок и цен относят значение к подходящему диапазону.
=MATCH(750, A2:A6, 1)Одного MATCH обычно недостаточно
Сам по себе MATCH сообщает только номер позиции, что не очень полезно в качестве окончательного ответа. Фраза «клиент находится в строке 7» — лишь промежуточный результат.
Обычно Вам нужны данные на этой позиции: адрес электронной почты, баланс или статус клиента.
Поэтому MATCH почти никогда не используется отдельно. В следующем уроке Вы передадите позицию, найденную MATCH, непосредственно в INDEX, чтобы получить нужное Вам значение.
=MATCH(E1, A2:A100, 0)Два вызова MATCH для двух измерений
Вы можете дважды выполнить MATCH, чтобы независимо определить строку и столбец. Один вызов MATCH находит позицию строки по столбцу меток, другой — позицию столбца по строке заголовков.
Например, найдите строку с меткой «Восток» с помощью =MATCH("East", A2:A10, 0), а столбец с заголовком «3-й квартал» — с помощью =MATCH("Q3", B1:E1, 0).
Вместе эти два числа однозначно определяют ячейку, которую можно передать INDEX.
=MATCH("East", A2:A10, 0)Быстрая проверка
Убедитесь, что Вы понимаете, что возвращает MATCH.
Итоги: MATCH находит позиции
Вы узнали, что MATCH возвращает позицию значения внутри диапазона:
=MATCH(lookup_value, lookup_array, match_type)- Используйте 0 для точного совпадения; данные не обязательно сортировать
- Используйте 1 для данных, отсортированных по возрастанию, чтобы найти подходящий диапазон или уровень
- Функция работает вертикально и горизонтально и возвращает
#N/A, если совпадение не найдено
MATCH сообщает позицию, а INDEX превращает позицию в значение. Далее Вы объедините их в одну мощную формулу поиска.
=MATCH("Cherry", B2:B6, 0)Часто задаваемые вопросы
Урок «Поиск позиций с помощью MATCH» бесплатный?
Да — полный текст урока «Поиск позиций с помощью MATCH» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Excel Formulas Academy, подпишись на CoddyKit PRO. Курс Excel Formulas Academy содержит 4 уроков всего.
Чему я научусь в уроке «Поиск позиций с помощью MATCH»?
Находите позицию значения в строке или столбце Ты практикуешь Excel Formulas Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Excel Formulas Academy?
Предыдущий опыт не требуется. Excel Formulas Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Поиск позиций с помощью MATCH»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Excel Formulas Academy?
Да. Каждый урок Excel Formulas Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Извлечение значений с помощью INDEX
- Поиск позиций с помощью MATCH
- Объединение INDEX и MATCH
- Почему INDEX-MATCH лучше VLOOKUP