Использование этих двух встроенных функций гугл таблиц позволяет получать результаты, аналогичные ВПР, но чуточку быстрее. Это особенно актуально в таблицах с большими массивами данных.
MATCH (ПОИСКПОЗ)
Формула возвращает относительное положение значения в диапазоне. То есть MATCH возвращает номер позиции элемента в массиве или диапазоне, а не сам элемент.
Устроена MATCH следующим образом:
=MATCH(ЧТО-ИЩЕМ; ГДЕ-ИЩЕМ; КАК-ИЩЕМ)
Допустим, есть таблица со следующими данными:
И необходимо получить номер позиции фамилии «Овечкин»
=MATCH("Овечкин";A1:A9;0)
Формула вернет значение 6. Потому что это 6 позиция в выбранном диапазоне. Тут важно не перепутать с номером строки, которая по фамилии «Овечкин» так же шестая.
Поясню на примере. Сдвигаю таблицу ниже:
=MATCH("Овечкин";A2:A10;0)
Так же вернет 6, хотя номер строки 7. Так как я сдвинул диапазон с А1 на А2 — относительное положение элемента «Овечкин» в самом диапазоне не изменилось. Однако, если изменить формулу на:
=MATCH("Овечкин";A:A;0)
То результат будет 7. Так как диапазон начнется с А1.
Добавляю ИНДЕКС
INDEX (ИНДЕКС)
ИНДЕКС устроен с точностью наоборот. Если честно, мне не очень нравится стандартное объяснение аргументов, потому я буду использовать «свою и понятную» формулировку:
=INDEX(ГДЕ-ИЩЕМ; НОМЕР-ЭЛЕМЕНТА; НОМЕР-СТОЛБЦА)
- ГДЕ-ИЩЕМ аналогично как в ВПР.
- НОМЕР-ЭЛЕМЕНТА — номер элемента в выделенном диапазоне ГДЕ-ИЩЕМ
- НОМЕР-СТОЛБЦА — номер столбца в выделенном диапазоне ГДЕ-ИЩЕМ
Итак, у меня есть все та же таблица
где позиция «Овечкин» в диапазоне А:А — седьмая.
Если я поставлю цифру 7 в ИНДЕКС и выберу диапазон А:B, то формула будет следующая:
=INDEX(A:B;7;2)
И результат будет буква «М» — как значение седьмой позиции и второго столбца.
Нетрудно догадаться, что ИНДЕКС и ПОИСКПОЗ лучше всего использовать объединенно:
=INDEX(A:B;MATCH("Овечкин";A:A;0);2)
И результат будет все та же буква «М» — как всё то же значение седьмой позиции и второго столбца.
Так в чем же разница с ВПР?
Помимо быстродействия ИНДЕКС и ПОИСКПОЗ в отличие от базового функционала ВПР (который, впрочем обходится в гугл таблицах легко — через {\}) искать значение можно СЛЕВА от заданного элемента.
Например, найду пол Овечкина по возрасту:
=MATCH(40;C:C)
Нетрудно догадаться, что результат будет = 7
А поиск значения «М» будет по первому столбцу и выглядеть следующим образом:
=INDEX(B:C;MATCH(40;C:C);1)
Ваше мнение важно и может улучшить блог
Я хочу услышать ваше мнение и ваши идеи о том, как сделать этот сайт еще лучше. Примите участие в опросе, чтобы поделиться вашими пожеланиями, предложениями и замечаниями. Пройдите опрос сейчас и помогите сделать этот сайт более полезным для вас!
Дмитрий, благодарю за наипонятнейшее объяснение ))) всех благ Вам!