ИНДЕКС и ПОИСКПОЗ в гугл таблицах — или как отвыкнуть от ВПР

Использование этих двух встроенных функций гугл таблиц позволяет получать результаты, аналогичные ВПР, но чуточку быстрее. Это особенно актуально в таблицах с большими массивами данных.

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)

Ваше мнение важно и может улучшить блог

Я хочу услышать ваше мнение и ваши идеи о том, как сделать этот сайт еще лучше. Примите участие в опросе, чтобы поделиться вашими пожеланиями, предложениями и замечаниями. Пройдите опрос сейчас и помогите сделать этот сайт более полезным для вас!

У этой записи один комментарий

  1. Денис

    Дмитрий, благодарю за наипонятнейшее объяснение ))) всех благ Вам!

Добавить комментарий