ВПР_МН
Данная функция является частью надстройки MulTEx
![]() |
Вернуть все найденные значения
Если не все, то очень многие из Вас знают функцию ВПР(VLookUp) в Excel. При всех её достоинствах у неё есть и недостатки: она ищет значение исключительно в первом столбце таблицы, а возвращать может только ПЕРВОЕ найденное значение(сверху вниз). Плюс искать умеет только по одному критерию.
Функция
- искать по двум и более критериям(до 124-х)
- критерии могут располагаться в любом столбце, а не только в первом
- возвращать не только первое найденное, но любое указанное(поиск идет сверху-вниз): второе, третье, четвертое и т.д.
- вести поиск заданного значения не только сверху вниз, но и снизу вверх - т.е. найти первое снизу значение
- вернуть массив всех найденных значений.
Вызов команды через стандартный диалог:
Вызов с панели MulTEx:
Синтаксис:
=ВПР_МН(
=ВПР_МН(
=ВПР_МН(
=ВПР_МН(
"реализация"
.
Так же данный аргумент может принимать в качестве критерия символы сравнения
">0" - будут отобраны ячейки, значения ячеек критериев для которых больше нуля;">=2" - будут отобраны ячейки, значения ячеек критериев для которых больше или равно двум;"<0" - будут отобраны ячейки, значения ячеек критериев для которых меньше нуля;"<=60" - будут отобраны ячейки, значения ячеек критериев для которых меньше или равно 60;"<>0" - будут отобраны ячейки, значения ячеек критериев для которых не равно нулю;"<>" - будут отобраны ячейки, значения ячеек критериев для которых не пустые;
Вместо нуля может быть любое число или текст. Так же можно добавить ссылку на ячейку со значением:
- 0 - выводит последнее найденное значение - функция вернет только одно последнее найденное в указанном массиве значение;
- 1 - выводит первое найденное значение - функция вернет только одно первое найденное в указанном массиве значение;
- 2 - выводит значение под указанным номером вхождения(если выбран, то необходимо указать Номер вхождения) - функция вернет только одно значение, порядковый номер которого будет равен указанному аргументу Номер вхождения. Т.е. если необходимо вывести только 7-ое найденное значение, указываем
Номер вхождения - 7 . В качестве данного аргумента можно использовать данные в ячейках -I2 . Если номер вхождения не указан - функция вернет значение:Не указан номер вхождения! - -1 - выводит все найденные значения (для этого требуется ввести функцию как формулу массива: Выделить диапазон строк, в которые следует поместить результат. В строку формул ввести данную функцию и нажать
Ctrl +Shift +Enter ). Подробнее про формулы массива можно прочитать здесь.
Чтобы лучше понять работу и синтаксис функции, разберем несколько несложных примеров. В качестве рабочей возьмем таблицу следующего вида:

Теперь решим несколько задач при помощи функции ВПР_МН:
- Найдем кол-во дней отсрочки для контрагента "ООО "Беркут""(при условии, что контрагент записан в ячейке
):J2
=ВПР_МН( $A$1:$E$20 ;J2 ;1;2;2;1)
Это несложная задача и по сути здесь с легкостью справится стандартная ВПР и ВПР_МН здесь не обязательно. - Теперь найдем кол-во дней отсрочки для контрагента "ООО "Беркут"", но при этом только для 2-го квартала(при условии, что контрагент записан в ячейке J2, а значение квартала - в
):I2
=ВПР_МН( $A$1:$E$20 ;J2 ;1;2;2;1;I2 ;4)
кварталы в нашей таблице записаны в столбце D, который идет 4-м по счету в нашей таблице. Поэтому мы и указываем последовательно (2 кв.) и 4(номер столбца, где искать квартал).I2 - Отберем всех контрагентов с отсрочкой менее 30 дней:
=ВПР_МН( $A$1:$E$20 ;"<30";2;1;-1;1)
для того, чтобы отобрать всех контрагентов, 5-ый аргумент(Выводить первое значение) указывается как "-1", а формула вводится в ячейку как формула массива тремя клавишами -Ctrl +Shift +Enter . При этом важно помнить, что перед тем как вводить формулу необходимо заранее выделить не одну ячейку, а сразу несколько ячеек(построчно) в кол-ве, достаточном для записи всех найденных значений. В нашем случае можно было выделить ячейки , записать в них формулуK2:K3 =ВПР_МН( и завершить ввод сочетанием клавиш$A$1:$E$20 ;"<30";2;1;-1;1)Ctrl +Shift +Enter . - Выведем все объёмы закупок за "2 кв." у контрагента
"ООО "Беркут"" (при условии, что контрагент записан в ячейке , а значение квартала - вJ2 I2 ):
=ВПР_МН( $A$1:$E$20 ;J2 ;1;3;-1;1;I2 ;4)
Так же как и в примере выше - формула вводится в ячейку как формула массива, т.е. сразу в несколько ячеек и сочетанием клавишCtrl +Shift +Enter . Отличие в том, что теперь у нас не один критерий поиска, а два. - И еще одна стандартная задача - отобрать всех покупателей с объемом закупок от 10 до 20 млн. Отбор производится на основании трех критериев: 1-ый - признак контрагента(Покупатель или Поставщик), который в нашей таблице записан в столбце E(в формуле мы этот признак для отбора указываем в ячейке
); 2-ой - нижнее значение объема закупок в 10 млн; 3-ий - верхнее значение объема закупок в 20 млн:K2
=ВПР_МН( $A$1:$E$20 ;J2 ;5;1;-1;1;">=10000000";3;"<=20000000";3)
Формула вводится в ячейку как формула массива, т.е. сразу в несколько ячеек и сочетанием клавишCtrl +Shift +Enter . Так же нижнее и верхнее значение объёма закупок можно указать непосредственно в ячейках и ссылаться в формуле на них. Для примера это будут ячейки иI2 , признак контрагента по прежнему в ячейкеJ2 :K2
=ВПР_МН( $A$1:$E$20 ;K2 ;5;1;-1;1;I2 ;3;J2 ;3)
Так же см.:
ВПР_ВСЕ_КНИГИ
Как найти значение в другой таблице или сила ВПР
ВПР с возвратом всех значений
ВПР с поиском по нескольким листам
Расскажи друзьям, если статья оказалась полезной:

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум
-1 – выводит все найденные значения (для этого требуется ввести формулу массива: Выделить диапазон строк, в которые следует поместить результат. В строку формул ввести данную функцию и нажать Ctrl+Shift+Enter).
Не могу разобраться, как это работает.
Попробуйте в поисковике набрать: формула массива. Кратко все уже описано - не знаю, как Вам пояснить понятнее. Может так яснее будет: создали формулу в ячейке. Скопировали формулу из строки формул. Выделили диапазон, перешли в строку формул и вставили скопированную формулу. Нажали сочетание клавиш Ctrl+Shift+Enter.
Можно ли вывести результат массива в одной ячейке?
При параметре Выводить первое значение:-1?
Например: {2009;2010;2011}
Цель: т.к. вывод можно сделать только в столбец, а хотелось бы вывести все найденные значения в строку. Если получить результат как в примере можно потом раскидать полученную строку.
Непосредственно в функции не получится(не вмешиваясь в код). Но можно вывести в столбец, а затем полученные значения транспонировать(функцией ТРАНСП или Специальной вставкой).
-1 после вставки формулы массива выводит во всех ячейках первые найденные значения
Если Вы пытаетесь вывести значения, выделив строку - то так и будет. Выделите ячейки в столбце - тогда будут выведены именно все значения в нужном виде.
Здравствуйте!
Скажите, а где найти данную формулу???
или возможно код???
Заранее большое спасибо.
собственно, либо я туплю, либо функция не работает
Столбец В и С. ищу значение С в столбце В и надо вывести все значения С, соответствующие значению В.
{=ВПР2($B$3:$C$877;$C$3:$C$877;1;2;-1)}
в таком случаи показывает знач!, если же
{=ВПР2($B$3:$C$877;C3;1;2;-1)}
то показывает как обычно впр - первое значение столько раз столько ячеек принято в массив.
Собственно - сколько ячеек выделяете перед вводом формулы? Выделяете в строку или в столбец? Надо в столбец.
выделяю весь диапазон д3:п877, т.е. я подразумеваю что может быть найдено нужных значений от столбца д до столбца п
если можно пример в екселе работы данной функции наtrufic@bk.ru ? либо здесь выложите свободно для скачки, ибо чую, что где-то затык ))