407

Excelling at Excel вып.1: Преодолеваем ограничения функции ВПР

Серия Excelling at Excel

Многие из вас встречались с этой полезной функцией MS Excel ВПР (VLOOKUP). Это, безусловно, очень полезный инструмент агрегации и трансформации данных. Но, к сожалению, данная функция имеет ряд ограничений. Ниже мы рассмотрим несколько трюков, которые позволят нам преодолеть эти ограничения.


Первое ограничение функции ВПР - это обязательный параметр "номер_столбца" ("col_index_num").

Он определяет какие данные функция ВПР вернет в результате. Использование в качестве номера столбца в функции числа может негативно сказаться на удобстве последующего использования и изменения формул и расчетов. Например, добавление одной колонки в искомом массиве "сломает" формулу, т.к. параметр "номер_столбца" в ней остается неизменным.

Как видно из примера выше, вместо данных из столбца Data функция вернула данные из столбца Class, т.к. он теперь стал вторым относительно столбца Name.


Также нужно иметь в виду, что если через ВПР агрегируется несколько элементов данных, то в случае внесения корректировок в массив данных потребуется вносить ручные правки во все параметры "номер_столбца".


Чтобы избежать этих трудозатратных манипуляций, можно использовать функцию ПОИСКПОЗ (MATCH). Она позволяет определить позицию искомого поля в массиве поиска.

где бы оно не находилось...

Дополнительным бонусом от использования функции ПОИСКПОЗ в данном случае будет еще и легко изменяемое искомое поле данных. Нужно просто поменять первый параметр "искомое_значение" ("lookup_value") функции ПОИСКПОЗ (в приведенном примере это ячейка В1).

Второе ограничение функции ВПР  - обязательное требование о расположении в массиве поиска столбца с искомыми значениями строго слева от столбцов с данными. Если столбец с искомыми значениями (столбец Name в примере) не первый слева направо, то функция ВПР не вернет никаких данных из столбцов с данными (столбцы Class Data в примере).

Чтобы обойти это ограничение, надо воспользоваться функцией СМЕЩ (OFFSET) вместо функции ВПР. Данная функция состоит из трех обязательных параметров: ссылка (reference), смещение по строкам (rows), смещение по столбцам (cols). СМЕЩ возвращает значение ячейки, расположенной в X строках (смещение по строкам) и в Y столбцах (смещение по столбцам) от указанной ячейки (ссылка). Но чтобы получить максимальный эффект от этой функции, ее следует использовать вместе с двумя функциями ПОИСКПОЗ вместо параметров смещение по строкам и смещение по столбцам.

ВАЖНО! Пожалуйста, не забывайте, что функция ПОИСКПОЗ возвращает порядковый номер ячейки с искомым значением в массиве, когда как в функции СМЕЩ смещение по строкам и смещение по столбцам - это количество шагов от начальной ячейки. Т.е. необходимо в обязательном порядке вычесть 1 из полученных функциями ПОИСКПОЗ результатов.

Итак, получаем формулу следующего вида:

СМЕЩ(начальная ячейка; ПОИСКПОЗ(искомое значение; массив поиска; тип сопоставления) - 1; ПОИСКПОЗ(искомое значение; массив поиска; тип сопоставления) - 1)

В результате мы имеем довольно-таки гибкое решение, не зависящее от позиции столбцов в массиве данных. Также имея это решение, мы можем легко переключаться с одного столбца данных на другой.


Для того, чтобы сделать эту формулу супергибкой и чтобы легко менять не только данные с результатами (Class и Data в примере), но и искомые данные (Name в примере), нужно поместить внутрь первой функции ПОИСКПОЗ (вместо искомое значение) еще одну функцию СМЕЩ с функцией ПОИСКПОЗ внутри. Такая формула будет самостоятельно определять столбец с искомыми значениями на основании значения ячейки А1. Таким образом, модифицированная формула будет иметь следующий вид:

СМЕЩ(начальная ячейка; ПОИСКПОЗ(искомое значение; СМЕЩ(начальная ячейка; 0, ПОИСКПОЗ(искомое значение; массив поиска; тип сопоставления) - 1); массив поиска; тип сопоставления) - 1; ПОИСКПОЗ(искомое значение, массив поиска, тип сопоставления) - 1)

Выглядит сложно, но при построении сложных гибких решений - вещь очень удобная.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества