Добрый день уважаемый пользователь Excel!
Я хочу продолжить описание работы с массивами данных, и сейчас рассмотрим способы улучшения работоспособности функции ВПР. Для чего это собственно нужно, расширять и улучшать функционал работы функции ВПР в Excel, просто достаточно часто возникает необходимость собрать все доступные вхождение условий, а не только первое, которое встретится.
Саму работу функции ВПР, а также ее сестры функцию ГПР, я описывал в отдельных статьях, с которыми вы можете ознакомиться, перейдя по соответствующим ссылкам.
Итак, создадим таблицу примеров:
Теперь можно узнать, к примеру, какая прибыль принесла вторая отгрузка компании «Ванта» ну или когда отгружалась третий раз компания «Каскад». Так как стандартная возможность функции ВПР этого сделать не может, она найдет первое вхождения по названию компании и остановится. А на вопрос о том кто отгрузил товар по накладной № 874, ответа вы не получите, т.к. функционал ВПР не работает на поиск значений левее от столбика поиска и нужно использовать комбинацию функций ПОИСКПОЗ и ИНДЕКС.
Но, все ваши проблемы можно решить одним простым способом, ну или не совсем простым, это создать собственную функцию, с помощью возможностей макросов VBA, которая сможет искать не только в любых столбиках, но и находить все вложения согласно заданных условий.
На просторе Интернета много полезностей, вот и нашёл там код функции от Николая Павлова, который вам поможет. Условно назовите ее, к примеру, VPR, чтобы не забыть. Откройте редактор VBA с помощью горячего сочетания клавиш ALT+F11 или на панели управления в разделе «Разработчик» в блоке «Код», нажимаете кнопку «Visual Basic».
Следующим шагом создаете новый модуль, в меню выбираете пункт «Insert», а потом нажать «Module» и вставляете в него следующий код:
Теперь можно закрыть редактор макросов и переключится на вашу рабочую книгу. Устанавливаете курсор в нужном месте и вызываете «Мастер функций», указываете категорию функций «Определенные пользователем» находите созданную функцию VPR и вставляете ее.
Синтаксис созданной функции такой:
= VPR (_таблица_ поиска_; _номер_столбика _где_ищем_; _значение_ которое _ищем_; _номер_значения_ которое_нужно_ найти_; _номер_столбика _из_которого_изымаем _значение_).