Функция ПОИСКПОЗ (MATCH) позволяет определить порядковый номер элемента (обычно текста, записанного в ячейке) в определенном списке.
Эта функция очень удобна для быстрого сравнения двух списков: очевидно, если функция не может найти порядковый номер какого-то элемента из первого списка во втором списке, то его там просто нет.
Таким образом, вы можете быстро понять, какие элементы одного списка отсутствуют во втором.
Синтаксис функции следующий:
MATCH(искомое значение; список; точный поиск)
Искомое значение — то, что мы ищем (обычно ячейка с текстом), список — диапазон, в котором мы ищем. Последний аргумент должен равняться нулю, если вы хотите вести точный поиск (обычно нужно именно это).
Пример:
В примере ошибка #N/A возникает только в тех случаях, когда соответствующего элемента нет во втором списке.
Представим ситуацию: у нас есть таблица с адресами; в ней, используя адрес, нужно найти соответствующий ему индекс.
Если бы сначала шел столбец «Адрес», а за ним столбец «Индекс», то мы просто бы использовали формулу ВПР. Да, можно просто скопировать столбец А и поставить его после столбца С, а потом все же воспользоваться ВПР, но я покажу вам способ удобнее.
Для начала определим номер строки, в которой находится наш адрес, «ул. Свободы д. 176». Воспользуемся формулой ПОИСКПОЗ (MATCH). Формула будет выглядеть вот так (запрос, диапазон для поиска, интервальный просмотр отключен):
Формула возвращает 8. Значит, «ул. Свободы д. 176» — 8-й по счету элемент диапазона С1:C12 (сверху вниз). А так как диапазон начинается с первой строки таблицы, то 8 — еще и номер строки, на которой расположена эта улица:
Нам нужно вернуть индекс этой улицы, и мы знаем, что он расположен в столбце А:
А номер строки — 8. Просто создаем формулу ДВССЫЛ (INDIRECT) (напомню: с помощью нее текстовое значение превращается в ссылку на ячейку, которая немедленно вычислится):
Чтобы получился адрес А8, берем "A" (текст обязательно должен быть в кавычках), & для объединения и формулу ПОИСКПОЗ, которую мы разбирали выше. И все это вкладываем в ДВССЫЛ.
Что делать, если таблица будет располагаться в диапазоне A100:C111? В таком случае необязательно использовать в ПОИСКПОЗ диапазон поиска с первой строки листа — просто вычислите положение элемента в С100:C111 и добавьте к нему 99. Результатом будет номер строки, в которой расположен элемент. Всю эту конструкцию вы также сможете поместить в ДВССЫЛ.