Как найти впр второе значение

ВПР по двум или нескольким условиям

ВПР, как и ГПР являются одними из самых полезных функций в Excel. На моём канале вы можете найти статьи про каждую из них( кликай – ВПР, ГПР).

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

Заранее скажу, что если вы используйте Microsoft Office старее 2019, то можете столкнуться с крайней медленной обработкой ваших формул. Все будет зависеть от:

  • Мощности вашего ПК.
  • Количества ячеек, которое просматривают нижеприведенные формулы.
  • Количества ячеек, в которых прописана данная формула.

Лишь в 2019 офисе(и естественно в офисе 365) исправили алгоритмы работы, благодаря чему можно использовать все формулы массивов без каких-либо ограничений.

Способ Первый – через ЕСЛИ внутри ВПР

Пример применения первого способа с описанием аргументов
Пример применения первого способа с описанием аргументов

=ВПР(D1;ЕСЛИ(B6:B20=D2;A6:C20;””);3;0)

Суть способа – заставить формулу ЕСЛИ(кликни для перехода на видео по формуле) проверять определенные столбцы на соответствие заданному признаку и в случае совпадения становится вторым аргументом в формуле ВПР.

Если у вас старая версия офиса(старее 2019), то для корректной работы формулы потребуется нажать на горячие клавиши CTRL+SHIFT+ENTER одновременно для заключения формулы в массив. В этом случае формула будет дополнительно заключена в скобки {}.

У такого способа есть только один недостаток – он удобен только в случае, когда критериев поиска два. Если критериев больше то потребуется городить большое количество формул ЕСЛИ внутри ЕСЛИ. Переходим ко второму способу.

Способ Второй – ВПР по нескольким критериям с помощью связи ИНДЕКС+ПОИСКПОЗ

На моём канале я уже рассказывал(кликни для перехода на статью) о такой связке, как ИНДЕКС+ПОИСКПОЗ. По моему субъективному мнению она лучше всего подходит для нахождения ячейки по нескольким критериями, если итог поиска не является числом.

Пример применения второго способа с описанием аргументов
Пример применения второго способа с описанием аргументов

=ИНДЕКС(D8:D22;ПОИСКПОЗ(1;(A8:A22=E1)*(B8:B22=E2)*(C8:C22=E3);0))

Если потребуется добавить критериев – просто добавляем еще одну скобку, в которую вписываем столбец в котором будем искать и ячейку с критерием поиска).

И ещё раз напоминаю – если старая версия Office – нужно нажать на горячие клавиши CTRL+SHIFT+ENTER одновременно для заключения формулы в массив {}.

Способ Третий – СУММПРОИЗВ

Я не просто так упомянул в предыдущем способе о том, что он лучший если итог поиска не число а например текст. Если же мы ищем число то, самой рациональной формулой будет СУММПРОИЗ(Сумма произведения).

Пример применения третьего способа с описанием аргументов
Пример применения третьего способа с описанием аргументов

=СУММПРОИЗВ((A8:A22=$E$1)*(B8:B22=$E$2)*($C$8:$C$22=E3)*(D8:D22))

При применении данной формулы не потребуется нажимать CTRL+SHIFT+ENTER.

Надеюсь моя статья была вам полезна. Спасибо за прочтение.

ВПР по двум или нескольким условиям

Skip to content

Поиск ВПР нескольких значений по нескольким условиям

В статье показаны способы поиска (ВПР) нескольких значений в Excel на основе одного или нескольких условий и возврата нескольких результатов в столбце, строке или в отдельной ячейке.

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

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

Поиск нескольких позиций в Excel с помощью формулы

Как было сказано ранее, невозможно заставить функцию ВПР Excel возвращать несколько значений. Проблему можно решить, используя следующие функции в формуле массива:

  • ЕСЛИ – оценивает условие и возвращает одно значение, если условие выполняется, и другое значение, если условие не выполняется.
  • НАИМЕНЬШИЙ– получает N-е наименьшее значение в массиве.
  • ИНДЕКС — возвращает элемент массива на основе указанных вами номеров строк и столбцов.
  • СТРОКА — возвращает номер строки.
  • СТОЛБЕЦ — возвращает номер столбца.
  • ЕСЛИОШИБКА – перехватывает ошибки.

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

Поиск нескольких значений и возврат результатов в столбец

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

  1. Введите список имен продавцов в какую-нибудь пустую строку того же или другого рабочего листа. В этом примере имена вводятся в ячейки D2:H2:

СоветЧтобы быстро записать все имеющиеся в списке имена, вы можете использовать эту инструкцию –  как получить список уникальных значений в Excel.

  1. Под именем выберите количество пустых ячеек, равное или превышающее максимально возможное количество совпадений, введите одно из следующих выражений и нажмите Ctrl + Shift + Enter для ввода его как формулы массива (в этом случае вы сможете редактировать формулу только сразу во всем диапазоне, где она введена). Или же вы можете записать это в левую верхнюю ячейку, также использовав Ctrl + Shift + Enter, а затем перетащить вниз еще на несколько ячеек (в этом случае вы сможете редактировать формулу в каждой ячейке отдельно).

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;””); СТРОКА()-2));””)

или

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;””); СТРОКА()-2));””)

Как видите,  первая формула немного компактнее, а вторая более универсальна и требует меньше модификаций (подробнее о синтаксисе и логике мы поговорим чуть дальше).

  1. Скопируйте формулу в соседние столбцы справа. Для этого перетащите маркер заполнения (небольшой квадрат в правом нижнем углу выбранного диапазона) вправо.

Результат ВПР нескольких значений в столбце будет выглядеть примерно так:

Здесь мы использовали первую формулу:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;””); СТРОКА()-2));””)

Как это работает.

Это пример использования Excel от среднего до продвинутого уровня, который подразумевает базовые знания формул массива и функций Excel. Итак, разберём пошагово:

  1. Функция ЕСЛИ

В основе поиска – функция ЕСЛИ, чтобы получить позиции всех вхождений искомого значения в диапазоне поиска: ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13) )-2;””)

ЕСЛИ сравнивает искомое значение (D2) с каждым значением в диапазоне поиска (A3:A13) и, если совпадение найдено, возвращает относительную позицию строки; пустое значение (“”) в противном случае.

Относительная позиция вычисляется путем вычитания 2 из СТРОКА($B$3:$B$13), чтобы первая позиция с формулой имела порядковый номер 1 (то есть, 3-2=1). Если ваш диапазон вывода начинается со строки 2, тогда вычтите 1 и так далее. Результатом этой операции является массив {1;2;3;4;5;6;7;8;9;10;11}, который поступает в аргумент значение_если_истина функции ЕСЛИ.

Вместо приведенного выше вычисления вы можете использовать следующее выражение:

СТРОКА(столбец_просмотра) – МИН(СТРОКА(столбец_просмотра))+1

Оно возвращает тот же результат, но не требует каких-либо изменений независимо от местоположения возвращаемого столбца. В этом примере это будет СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1.

Итак, на данный момент у вас есть массив, состоящий из чисел (позиций совпадений) и пустых строк (несовпадений). Для ячейки D3 в этом примере у нас есть следующий массив:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ({1:””:””:””:5:””:””:8:””:””:””}; СТРОКА()-2));””)

Если вы сверитесь с исходными данными, вы увидите, что «Сергей» (значение поиска в D2) появляется на 1- й , 5 -й и 8 -й позициях в диапазоне поиска (A3: A13).

  1. Функция НАИМЕНЬШИЙ

Затем вступает в действие функция НАИМЕНЬШИЙ(массив; k), чтобы определить, какие совпадения должны быть возвращены в конкретной ячейке.

С уже установленным в предыдущем шаге массивом давайте определим аргумент k , т. е. k-е наименьшее возвращаемое значение. Для этого вы делаете своего рода «инкрементный счетчик» СТРОКА()-n, где «n» — это номер строки первой ячейки формулы минус 1. В этом примере мы ввели формулу в ячейки D3:D7, поэтому СТРОКА()-2 возвращает «1» для ячейки D3 (строка 3 минус 2), «2» для ячейки D4 (строка 4 минус 2) и т. д.

В результате функция НАИМЕНЬШИЙ извлекает первый наименьший элемент массива в ячейку D3, второй наименьший элемент в ячейку D4 и так далее. И это превращает первоначальную длинную и сложную формулу в очень простую, например:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;{1});””)

СоветЧтобы увидеть значение, вычисленное определенной частью формулы, выделите эту часть в самой формуле и нажмите F9.

  1. Функция ИНДЕКС

Здесь все просто. Вы используете функцию ИНДЕКС, чтобы вернуть значение элемента массива на основе его номера.

  1. Функция ЕСЛИОШИБКА 

И, наконец, вы оборачиваете формулу в функцию ЕСЛИОШИБКА для обработки возможных ошибок, которые неизбежны, потому что вы не можете знать, сколько совпадений будет возвращено для того или иного искомого значения. Ведь вы копируете формулу в число ячеек явно большее, чем количество возможных совпадений, то есть «с запасом». Чтобы не пугать пользователей кучей ошибок, просто замените их пустой строкой (пустой ячейкой).

Примечание. Обратите внимание на правильное использование абсолютных и относительных ссылок на ячейки в формуле. Все ссылки фиксированы, за исключением ссылки на относительный столбец в искомом значении (D$2), которая должна изменяться в зависимости от относительного положения столбцов, в которые копируется формула, чтобы возвращать совпадения для других имён.

На скриншоте ниже вы можете видеть, как работает вторая формула

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;””); СТРОКА()-2));””)

Обобщив эти два решения, мы получим следующие общие формулы для ВПР нескольких значений в Excel, которые будут выведены в столбец:

Вариант 1 :

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;””); СТРОКА()-n));””)

Вариант 2:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;””); СТРОКА()-n));””)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне минус 1.
  • n — номер строки первой ячейки с формулой минус 1.

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

Поиск нескольких совпадений и возврат результатов в строке

Если вы хотите вернуть несколько найденных значений в строках, а не в столбцах, измените приведенные выше формулы Excel следующим образом:

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($B$3:$B$13)-2;””); СТОЛБЕЦ()-4));””)

или

=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;””);СТОЛБЕЦ()-4)); “”)

Как и в предыдущем примере, обе они являются формулами массива, поэтому не забудьте нажать комбинацию Ctrl + Shift + Enter, чтобы записать их правильно.

Формулы работают с той же логикой, что и в предыдущем примере, за исключением того, что вы используете функцию СТОЛБЕЦ вместо СТРОКА. Чтобы определить, какое совпадающее значение должно быть возвращено в конкретной ячейке, используем: СТОЛБЕЦ()-n где n — номер столбца первой ячейки, в которую вводится формула, минус 1. В этом примере результаты выводятся в диапазон E2:H2. Поскольку E является пятым столбцом, n равно 4  (5-1=4).

Примечание. Чтобы формула правильно копировалась вправо и вниз, обратите внимание на ссылки на значения поиска, где используется абсолютный адрес столбца и относительный адрес строки, например $D3.

И вот общие формулы для ВПР в Excel нескольких значений, возвращаемых по строке:

Формула 1 :

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;””); СТОЛБЕЦ()-n));””)

Формула 2:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;””); СТОЛБЕЦ()-n));””)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
  • n — номер столбца первой ячейки, в которой записана формула, минус 1.

Поиск нескольких значений на основе нескольких условий

Вы уже знаете, как выполнять поиск нескольких значений в Excel на основе одного условия. Но что, если вы хотите вернуть несколько совпадений сразу на основе двух или более критериев? Продолжая предыдущие примеры – что, если у вас в таблице есть дополнительный столбец «Месяц» и вы хотите получить список всех товаров, проданных конкретным продавцом в определенном месяце?

Если вы знакомы с формулами массивов, то, возможно, помните, что они позволяют использовать знак умножения (*) в качестве логического оператора И. Таким образом, вы можете просто взять выражения, рассмотренные в двух предыдущих примерах, и заставить их проверять несколько условий, как показано ниже.

Как вернуть несколько значений в столбце.

Выведем искомые значения, соответствующие одновременно нескольким условиям, в привычном нам виде – вертикально в одном столбце.

В общем виде это выглядит так:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((–(искомое_значение1 = диапазон_искомых_значений1)) * (–(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;””); СТРОКА()-n));””)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
  • n — номер строки первой слева ячейки с формулой, минус 1.

Предположим, что список продавцов (диапазон_искомых_значений1) находится в A3:A30, список месяцев (диапазон_искомых_значений2) находится в B3: B30, интересующий продавец (искомое_значение1) указан в ячейке E3, а нужный месяц (искомое_значение2) – в ячейке F3. Тогда формула поиска принимает следующий вид:

=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((–($E$3=$A$3:$A$30))*(–($F$3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;””); СТРОКА()-2));””)

Таким образом, мы вводим имя в E3, месяц в F3, и получаем список товаров в столбце G:

Как вернуть несколько результатов в строке.

Если вы хотите получить по горизонтали несколько искомых значений на основе нескольких критериев, то есть когда результаты размещаются в одной строке, то используйте следующий общий шаблон:

=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((–(искомое_значение1 = диапазон_искомых_значений1)) * (–(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;””); СТОЛБЕЦ()-n));””)

где:

  • m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
  • n — номер столбца первой слева ячейки, в которой записана формула, минус 1.

Для нашего примера набора данных формула выглядит следующим образом:

=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((–($E3=$A$3:$A$30))*(–($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;””); СТОЛБЕЦ()-6));””)

И результат ВПР нескольких значений по нескольким условиям может выглядеть так:

Аналогичным образом вы можете выполнять ВПР с тремя, четырьмя и более условиями.

Как это работает?

По сути, формулы для ВПР нескольких значений с несколькими условиями работают с уже знакомой логикой, объясненной в самом первом нашем примере. Единственное отличие состоит в том, что функция ЕСЛИ теперь проверяет несколько условий:

1=((–(искомое_значение1 = диапазон_искомых_значений1)) * (–(искомое_значение2 = диапазон_искомых_значений2)) * …..)

Результатом каждого сравнения (искомое_значение = диапазон_искомых_значений) является массив логических значений ИСТИНА (условие выполнено) и ЛОЖЬ (условие не выполнено). Двойное отрицание (–) переводит логические значения в единицы и нули. А поскольку умножение на ноль всегда дает ноль, в правой части этого равенства у вас будет получаться 1 только для тех элементов, которые удовлетворяют всем указанным вами условиям. 

Вы просто сравниваете окончательный массив нулей и единиц с числом 1, чтобы функция СТРОКА вернула порядковые номера строк, удовлетворяющих всем условиям, в противном случае — пустоту.

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

Как вернуть несколько значений ВПР в одну ячейку

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

Используем выражение, которое мы рассматривали чуть выше и которая позволяет получить несколько результатов ВПР с условиями в одной строке:

=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((–($E3=$A$3:$A$30))*(–($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;””); СТОЛБЕЦ()-6));””)

Внесем в нее небольшие изменения.

Чтобы обработать сразу несколько результатов, в функцию СТОЛБЕЦ добавим аргумент – диапазон ячеек, в который мы ранее копировали формулу. То есть, вместо СТОЛБЕЦ() у нас теперь будет СТОЛБЕЦ(G3:K3). Это позволит формуле массива получить сразу несколько номеров столбцов.

Затем применим крайне полезную при работе с текстовыми значениями функцию ОБЪЕДИНИТЬ (доступна в Excel 2019 и более поздних версиях). Она позволит нам объединить несколько текстовых значений, отделив их друг от друга выбранным нами разделителем. К примеру, запятой с пробелом после нее.

Вот что у нас получится:

=ОБЪЕДИНИТЬ(“, “; ИСТИНА; ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((–($E3=$A$3:$A$30))*(–($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;””); СТОЛБЕЦ(G3:K3)-6));””))

И видим результат ВПР нескольких значений в одной ячейке на этом скриншоте:

Еще один, более простой вариант, чтобы подтянуть несколько значений и вывести результат в одной ячейке:

=ОБЪЕДИНИТЬ(“, “;ИСТИНА;ЕСЛИ(($A$3:$A$30=E3)*($B$3:$B$30=F3)=1;$C$3:$C$30;””))

Ее также нужно вводить как формулу массива:

Как найти несколько значений без дубликатов

А если так случится, что в результатах поиска будет несколько одинаковых значений? Пример таких данных вы можете видеть на скриншоте ниже. Естественно, выводить в ячейке несколько дубликатов было бы не совсем хорошо.

Если вы хотите получить в одной ячейке результаты поиска нескольких значений без повторов, попробуйте так:

=ОБЪЕДИНИТЬ(“, “; ИСТИНА; ЕСЛИ(ЕСЛИОШИБКА(ПОИСКПОЗ($C$3:$C$13; ЕСЛИ(E3=$A$3:$A$13; $C$3:$C$13; “”); 0);””)=ПОИСКПОЗ(СТРОКА($C$3:$C$13); СТРОКА($C$3:$C$13)); $C$3:$C$13; “”))

Вставьте это выражение в нужную ячейку, не забыв завершить ввод комбинацией Ctrl+Shift+Enter, так как это формула массива. Затем можете скопировать вниз по столбцу, чтобы получить данные по другим критериям выбора.

Как видите, мы получили в одной ячейке несколько значений, среди которых нет одинаковых, хотя в исходных данных таковые имеются.

Надеюсь, эти примеры будут вам полезны для поиска сразу нескольких значений в Excel.  Благодарю вас за чтение.

Функция ЕСЛИОШИБКА – примеры формул В статье описано, как использовать функцию ЕСЛИОШИБКА в Excel для обнаружения ошибок и замены их пустой ячейкой, другим значением или определённым сообщением. Покажем примеры, как использовать функцию ЕСЛИОШИБКА с функциями визуального…
5 способов – поиск значения в массиве Excel В статье предлагается несколько различных формул для выполнения поиска в двумерном массиве значений Excel.  Просмотрите эти варианты и выберите наиболее для вас подходящий. При поиске данных в электронных таблицах Excel…
Поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям В статье показано, как выполнять быстрый поиск с несколькими условиями в Excel с помощью ИНДЕКС и ПОИСКПОЗ. Хотя Microsoft Excel предоставляет специальные функции для вертикального и горизонтального поиска, опытные пользователи…
ИНДЕКС ПОИСКПОЗ как лучшая альтернатива ВПР В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР. В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить…
Поиск в массиве при помощи ПОИСКПОЗ В этой статье объясняется с примерами формул, как использовать функцию ПОИСКПОЗ в Excel.  Также вы узнаете, как улучшить формулы поиска, создав динамическую формулу с функциями ВПР и ПОИСКПОЗ. В Microsoft…
Функция ИНДЕКС в Excel — 6 примеров использования В этом руководстве вы найдете ряд примеров формул, демонстрирующих наиболее эффективное использование ИНДЕКС в Excel. Из всех функций Excel, возможности которых часто недооцениваются и используются недостаточно, ИНДЕКС определенно занимает место…
Как объединить две или несколько таблиц в Excel В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…
Вычисление номера столбца для извлечения данных в ВПР Задача: Наиболее простым способом научиться указывать тот столбец, из которого функция ВПР будет извлекать данные. При этом мы не будем изменять саму формулу, поскольку это может привести в случайным ошибкам.…

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

Совет: Попробуйте использовать новую функцию ПРОСМОТРX, улучшенную версию функции ВПР, которая работает в любом направлении и по умолчанию возвращает точные совпадения, что делает ее проще и удобнее в использовании, чем предшественницу.

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

Самая простая функция ВПР означает следующее:

=ВПР(искомое значение; место для его поиска; номер столбца в диапазоне с возвращаемым значением; возврат приблизительного или точного совпадения — указывается как 1/ИСТИНА или 0/ЛОЖЬ).

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Совет: Секрет функции ВПР состоит в организации данных таким образом, чтобы искомое значение (Фрукт) отображалось слева от возвращаемого значения, которое нужно найти (Количество).

Используйте функцию ВПР для поиска значения в таблице.

Синтаксис 

ВПР(искомое_значение, таблица, номер_столбца, [интервальный_просмотр])

Например:

  • =ВПР(A2;A10:C20;2;ИСТИНА)

  • =ВПР(“Иванов”;B2:E7;2;ЛОЖЬ)

  • =ВПР(A2;’Сведения о клиенте’!A:F;3;ЛОЖЬ)

Имя аргумента

Описание

искомое_значение    (обязательный)

Значение для поиска. Искомое значение должно находиться в первом столбце диапазона ячеек, указанного в аргументе таблица.

Например, если таблица охватывает диапазон ячеек B2:D7, искомое_значение должно находиться в столбце B.


Искомое_значение
может являться значением или ссылкой на ячейку.

таблица    (обязательный)

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

Первый столбец в диапазоне ячеек должен содержать искомое_значение. Диапазон ячеек также должен содержать возвращаемое значение, которое нужно найти.

Узнайте, как выбирать диапазоны на листе .

номер_столбца    (обязательный)

Номер столбца (начиная с 1 для крайнего левого столбца таблицы), содержащий возвращаемое значение.

интервальный_просмотр    (необязательный)

Логическое значение, определяющее, какое совпадение должна найти функция ВПР, — приблизительное или точное.

  • Вариант Приблизительное совпадение — 1/ИСТИНА предполагает, что первый столбец в таблице отсортирован в алфавитном порядке или по номерам, а затем выполняет поиск ближайшего значения. Это способ по умолчанию, если не указан другой. Например, =ВПР(90;A1:B100;2;ЛОЖЬ).

  • Вариант Точное совпадение — 0/ЛОЖЬ осуществляет поиск точного значения в первом столбце. Например, =ВПР(“Иванов”;A1:B100;2;ЛОЖЬ).

Начало работы

Для построения синтаксиса функции ВПР вам потребуется следующая информация:

  1. Значение, которое вам нужно найти, то есть искомое значение.

  2. Диапазон, в котором находится искомое значение. Помните, что для правильной работы функции ВПР искомое значение всегда должно находиться в первом столбце диапазона. Например, если искомое значение находится в ячейке C2, диапазон должен начинаться с C.

  3. Номер столбца в диапазоне, содержащий возвращаемое значение. Например, если в качестве диапазона вы указываете B2:D11, следует считать B первым столбцом, C — вторым и т. д.

  4. При желании вы можете указать слово ИСТИНА, если вам достаточно приблизительного совпадения, или слово ЛОЖЬ, если вам требуется точное совпадение возвращаемого значения. Если вы ничего не указываете, по умолчанию всегда подразумевается вариант ИСТИНА, то есть приблизительное совпадение.

Теперь объедините все перечисленное выше аргументы следующим образом:

=ВПР(искомое значение; диапазон с искомым значением; номер столбца в диапазоне с возвращаемым значением; приблизительное совпадение (ИСТИНА) или точное совпадение (ЛОЖЬ)).

Примеры

Вот несколько примеров использования функции ВПР.

Пример 1

=ВПР (B3,B2:E7,2,ЛОЖЬ)

ВПР ищет "Иванов" в первом столбце (столбец B) в таблице B2:E7 и возвращает "Григорий" из второго столбца (столбец C) таблицы.  Значение ЛОЖЬ возвращает точное совпадение.

Пример 2

=ВПР (102,A2:C7,2,ЛОЖЬ)

ВПР ищет точное совпадение (ЛОЖЬ) фамилии для 102 (искомое_значение) во втором столбце (столбец B) в диапазоне A2:C7 и возвращает "Григорий".

Пример 3

=ЕСЛИ(ВПР(103; А1:E7;2;ЛОЖЬ)="Кузьмина","Найдено","Не найдено")

ЕСЛИ проверяет, возвращает ли ВПР значение "Кузьмина" как фамилию сотрудника, соответствующую 103 (искомое_значение) в A1:E7 (таблица). Так как фамилия сотрудницы под номером 103 на самом деле "Сазонова", возвращается результат "Не найдено".

Пример 4

=ЦЕЛОЕ(ДОЛЯГОДА(ДАТА(2014,6,30),ВПР(105,A2:E7,5,ЛОЖЬ),1))



ВПР ищет дату рождения сотрудника под номером 109 (искомое_значение) в диапазоне A2:E7 (таблица), и возвращает 04.03.1955. Функция ДОЛЯГОДА вычитает эту дату рождения из даты 30.06.2014 и возвращает значение, которое с помощью функции ЦЕЛОЕ преобразуется в целое число 59.

Пример 5

ЕСЛИ(ЕНД(ВПР(105;A2:E7;2;ЛОЖЬ)) = ИСТИНА,"Сотрудник не найден",ВПР(105;A2:E7;2;ЛОЖЬ)) 



ЕСЛИ проверяет, возвращает ли ВПР фамилию из столбца B для сотрудника 105 (искомое_значение). Если ВПР находит фамилию, то функция ЕСЛИ отображает фамилию, в противном случае ЕСЛИ возвращает "Сотрудник не найден". ЕНД гарантирует, что если функция ВПР возвращает #Н/Д, то вместо #Н/Д отображается "Сотрудник не найден".



В этом примере возвращается значение "Егоров" — то есть фамилия под номером 105.

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

Лист со столбцами, которые используют функцию ВПР для получения данных из других таблиц.

Здесь столбцы A–F и H содержат значения или формулы, которые используют значения только на этом листе, а в остальных столбцах используется функция ВПР и значения столбца А (код клиента) и столбца B (адвокат) для получения данных из других таблиц.

  1. Скопируйте таблицу с общими полями на новый лист и присвойте имя.

  2. Щелкните Данные > Работа с данными > Отношения, чтобы открыть диалоговое окно “Управление отношениями”.

    Диалоговое окно "Управление связями".

  3. Для каждого отношения в списке обратите внимание на следующее.

    • Поле, которое связывает таблицы (указано в скобках в диалоговом окне). Это искомое_значение для вашей формулы ВПР.

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

    • Поле (столбец) в связанной таблице подстановки, содержащее данные, которые вам нужны в новом столбце. Эта информация не отображается в диалоговом окне “Управление отношениями”. Чтобы увидеть, какое поле нужно получить, посмотрите на связанную таблицу подстановки. Обратите внимание на номер столбца (A=1) — это номер_столбца в вашей формуле.

  4. Чтобы добавить поле в новую таблицу, введите формулу ВПР в первом пустом столбце, используя сведения, собранные на шаге 3.

    В нашем примере столбец G использует адвоката (искомое_значение) для получения данных ставки из четвертого столбца (номер_столбца = 4) из таблицы листа “Адвокаты”, тблАдвокаты (таблица), с помощью формулы =ВПР([@Адвокат];тбл_Адвокаты;4;ЛОЖЬ).

    Формула также может использовать ссылку на ячейку и ссылку на диапазон. В нашем примере это =ВПР(A2;’Адвокаты’!A:D;4;ЛОЖЬ).

  5. Продолжайте добавлять поля, пока не получите все необходимые поля. Если вы хотите подготовить книгу, содержащую функции данных, которые используют несколько таблиц, измените источник данных для функции данных на новую таблицу.

Проблема

Возможная причина

Неправильное возвращаемое значение

Если аргумент интервальный_просмотр имеет значение ИСТИНА или не указан, первый столбец должны быть отсортирован по алфавиту или по номерам. Если первый столбец не отсортирован, возвращаемое значение может быть непредвиденным. Отсортируйте первый столбец или используйте значение ЛОЖЬ для точного соответствия.

#Н/Д в ячейке

  • Если аргумент интервальный_просмотр имеет значение ИСТИНА, а значение аргумента искомое_значение меньше, чем наименьшее значение в первом столбце таблицы, будет возвращено значение ошибки #Н/Д.

  • Если аргумент интервальный_просмотр имеет значение ЛОЖЬ, значение ошибки #Н/Д означает, что найти точное число не удалось.

Дополнительные сведения об устранении ошибок #Н/Д в функции ВПР см. в статье Исправление ошибки #Н/Д в функции ВПР.

#ССЫЛКА! в ячейке

Если значение аргумента номер_столбца больше, чем число столбцов в таблице, появится значение ошибки #ССЫЛКА!.

Дополнительные сведения об устранении ошибок #ССЫЛКА! в функции ВПР см. в статье Исправление ошибки #ССЫЛКА!.

#ЗНАЧ! в ячейке

Если значение аргумента таблица меньше 1, появится значение ошибки #ЗНАЧ!.

Дополнительные сведения об устранении ошибок #ЗНАЧ! в функции ВПР см. в статье Исправление ошибки #ЗНАЧ! в функции ВПР.

#ИМЯ? в ячейке

Значение ошибки #ИМЯ? чаще всего появляется, если в формуле пропущены кавычки. Во время поиска имени сотрудника убедитесь, что имя в формуле взято в кавычки. Например, в функции =ВПР(“Иванов”;B2:E7;2;ЛОЖЬ) имя необходимо указать в формате “Иванов” и никак иначе.

Дополнительные сведения см. в статье Исправление ошибки #ИМЯ?.

Ошибки #ПЕРЕНОС! в ячейке

Эта конкретная ошибка #ПЕРЕНОС! обычно означает, что формула использует неявное пересечение для искомого значения и применяет весь столбец в качестве ссылки. Например, =ВПР(A:A;A:C;2;ЛОЖЬ). Вы можете устранить эту проблему, привязав ссылку подстановки с помощью оператора @, например: =ВПР(@A:A;A:C;2;ЛОЖЬ). Кроме того, вы можете использовать традиционный метод ВПР и ссылаться на одну ячейку вместо целого столбца: =ВПР(A2;A:C;2;ЛОЖЬ).

Действие

Примечания

Используйте абсолютные ссылки в аргументе интервальный_просмотр

Использование абсолютных ссылок позволяет заполнить формулу так, чтобы она всегда отображала один и тот же диапазон точных подстановок.

Узнайте, как использовать абсолютные ссылки на ячейки.

Не сохраняйте числовые значения или значения дат как текст.

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

Сортируйте первый столбец

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

Используйте подстановочные знаки

Если значение аргумента интервальный_просмотр — ЛОЖЬ, а аргумент искомое_значение представляет собой текст, то в аргументе искомое_значение допускается использование подстановочных знаков: вопросительного знака (?) и звездочки (*). Вопросительный знак соответствует любому отдельно взятому символу. Звездочка — любой последовательности символов. Если требуется найти именно вопросительный знак или звездочку, следует ввести значок тильды (~) перед искомым символом.

Например, с помощью функции =ВПР(“Ивано?”;B2:E7;2;ЛОЖЬ) будет выполнен поиск всех случаев употребления Иванов с последней буквой, которая может меняться.

Убедитесь, что данные не содержат ошибочных символов.

При поиске текстовых значений в первом столбце убедитесь, что данные в нем не содержат начальных или конечных пробелов, недопустимых прямых (‘ или “) и изогнутых (‘ или “) кавычек либо непечатаемых символов. В этих случаях функция ВПР может возвращать непредвиденное значение.

Для получения точных результатов попробуйте воспользоваться функциями ПЕЧСИМВ или СЖПРОБЕЛЫ.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Подключитесь к эксперту. Учитесь у живых инструкторов.

См. также

Функция ПРОСМОТРX

Видео: когда и как использовать ВПР

Краткий справочник: функция ВПР

Исправление ошибки #Н/Д в функции ВПР

Поиск значений с помощью функций ВПР, ИНДЕКС и ПОИСКПОЗ

Функция ГПР

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Вспомним, как работает функция ВПР: она просматривает крайний левый столбец таблицы-источника и, как только находит первое совпадение с заданным условием, возвращает (подтягивает) значение из указанного столбца в той же строке. В стандартном варианте функция ВПР ищет совпадение по одному критерию. Но что делать, если требования к поиску не ограничиваются одним условием? В этой статье рассмотрим, как работает функция ВПР в excel с несколькими условиями.

В стандартном наборе функций Excel функции ВПР с несколькими условиями не существует. Однако, есть несколько способов решить задачу поиска ВПР по двум или более условиям.

    • Способ 1. Функция ВПР в Excel с несколькими условиями при помощи вспомогательного столбца
    • Способ 2. ВПР с несколькими условиями в Excel при помощи сочетания функций ИНДЕКС / ПОИСКПОЗ
    • Способ 3. ВПР по двум условиям при помощи формулы массива
    • Способ 4. ВПР с несколькими условиями при помощи функции СУММЕСЛИМН

Это самый распространенный и самый простой способ в excel сделать ВПР двух или нескольких значений. 

Рассмотрим на примере. Есть две таблицы — таблица-источник (зеленая “шапка”) и рабочая таблица (синяя “шапка”), в которую нужно подтянуть количество автомобилей из источника по трем условиям: марка, модель и цвет автомобиля.

функция впр в excel с несколькими условиями

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

функция впр в excel с несколькими условиями

Вспомним синтаксис функции ВПР:

=ВПР(искомое_значение; таблица; номер столбца; [интервальный просмотр])

В качестве искомого значения нам нужно объединить все критерии поиска в том же порядке, как во вспомогательном столбце таблицы-источника.

функция впр в excel с несколькими условиями

Если будете копировать формулу в другие ячейки, то ссылки на ячейки и диапазон таблицы в формуле необходимо закрепить знаками $.

Как видите, функция ВПР в excel с несколькими условиями (а данном случае три условия) подтянула значение из выделенной строки.

функция впр в excel с несколькими условиями


   Сообщество Excel Analytics | обучение Excel

    Канал на Яндекс.Дзен 


Способ 2. ВПР с несколькими условиями в Excel при помощи сочетания функций ИНДЕКС / ПОИСКПОЗ

В этом способе, на самом деле, совсем не используется функция ВПР. Однако, он решает ту же самую задачу — подтянуть значения из таблицы-источника по нескольким условиям. 

Этот способ удобен тем, что не нужно создавать дополнительных столбцов в таблице-источнике (на практике не всегда возможно добавить столбец — источник может быть защищен от изменений).

В данном примере мы не будем разбирать, как работают функции ИНДЕКС и ПОИСКПОЗ по отдельности, а рассмотрим только, как решить нашу задачу — сделать ВПР с несколькими условиями в excel на примере.

Скопируем в нашем примере строку с условиями поиска и напишем следующую формулу:

функция впр в excel с несколькими условиями

После написания формулы необходимо нажать сочетание клавиш Ctrl + Shift + Enter. Это необходимо сделать, т.к. это формула массива — в противном случае выйдет ошибка #ЗНАЧ.

Давайте разберем формулу:

=ИНДЕКС(L4:L13;ПОИСКПОЗ(B5&C5&D5;I4:I13&J4:J13&K4:K13;0))

      • L4:L13 — массив, из которого будет подтягиваться информация. Тот столбец, данные из которого нам нужны.
      • B5&C5&D5 — критерии для поиска, которые мы объединили между собой оператором конкатенации &.
      • I4:I13&J4:J13&K4:K13 — столбцы, в которых будут происходить поиск по заданным критериям. 

I4:I13 — столбец с марками автомобилей (соответствует критерию в ячейке В5)

J4:J13 — столбец с моделями автомобилей (соответствует критерию в ячейке С5)

K4:K13 — столбец с цветом автомобилей (соответствует критерию в ячейке D5)

Обратите внимание, что столбцы, в которых будет происходить поиск, должны располагаться в формуле в таком же порядке, как и критерии поиска.

      • 0 — аргумент, обозначающий, что нужен поиск точного совпадения.

Способ 3. ВПР по двум условиям при помощи формулы массива

Рассмотрим работу функции ВПР по двум условиям на то же примере, только исключим один из критериев поиска — будем искать количество автомобилей по Модели автомобиля и Цвету. Так будет проще понять эту формулу.

Запишем следующую формулу для поиска:

=ВПР(C6;ЕСЛИ(K4:K13=D6;J4:L13;0);3;0)

В конце обязательно нужно нажать сочетание клавиш Ctrl + Shift + Enter, т.к. это формула массива, иначе будет ошибка #Н/Д.

функция впр в excel с несколькими условиями

Разберем, как работает эта формула. 

С6 — это первый критерий для поиска. Но поскольку у нас есть еще один критерий (D6), то искать C6 формула будет но во всем столбце J, а только в той строке, где будет совпадение с столбце К со значением второго критерия (D6).

Таким образом, при помощи конструкции внутри формулу ВПР 

ЕСЛИ(K4:K13=D6;J4:L13;0)

Создается виртуальная таблица для поиска значения первого критерия.

А дальше формула ВПР по двум условиям работает как обычная ВПР — указывается номер столбца 3 и интервальный просмотр 0 (точный поиск).

Способ 4. ВПР с несколькими условиями при помощи функции СУММЕСЛИМН

Функция СУММЕСЛИМН является полноценной альтернативой функции ВПР, если нужно подтянуть числовой результат по нескольким условиям.

Отличие функции СУММЕСЛИМН от ВПР в следующем: ВПР ищет самое первое совпадение и возвращает данные по строке с этом первом совпадении. А СУММЕСЛИМН просуммирует все значения, соответствующие критериям поиска. Нужно учитывать эту особенность.

Синтаксис функции СУММЕСЛИМН:

=СУММЕСЛИМН(Диапазон_суммирования; Диапазон_условия1; Условие1;…; Диапазон_условияN; УсловиеN)

Подтянем данные в нашу рабочую таблицу из таблицы-источника по тем же критериям, но уже при помощи функции СУММЕСЛИМН.

функция впр в excel с несколькими условиями

Функция СУММЕСЛИМН просуммировала все значения в столбце L, у которых значение в столбце I равно значению В7, значения в столбце JC7, а значения в столбце KD7. Как видите, результат такой же, как и при других способах.

Но, если мы добавим еще одну такую же строчку, то результат вычисления функции изменится. Именно эту особенность и нужно учитывать, если вы используете СУММЕСЛИМН вместо ВПР по нескольким условиям.

функция впр в excel с несколькими условиями

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

Вам может быть интересно:

history 30 сентября 2020 г.
    Группы статей

Функция ВПР() ищет заданное значение в ключевом столбце и выводит значение из соседнего столбца. Ключевой столбец в этом случае не содержит повторов. А что если содержит? Тогда функция выведет только первое встретившееся значение. Напишем формулу, которая выводит все значения, соответствующие искомому. Назовем эту формулу множественный ВПР().

Пусть дана исходная таблица с номерами заказов и товарами. Номера заказов могут повторяться.

У заказа 2 три повтора, в строке 3, 4 и 6. Перечень заказов не сортирован.

Выведем все наименования товаров для заказа 2, а также количество этих товаров.

Так как в ключевом столбце (Заказ) теперь несколько одинаковых значений, то функция ВПР() не годится – она выведет только самое первое, т.е. товар Манго. Чтобы вывести все 3 значения у заказа 2 создадим служебный столбец рядом с исходной таблицей.

Поместим в него формулу =СЧЁТЕСЛИ($B$8:B8;B8)

Она подсчитает номера повторов для каждого заказа. Нужный заказ введем в желтую ячейку. Соответствующие позиции этого заказа подсвечиваются зеленым цветом в исходной таблицке с помощью условного форматирования.

В таблице ниже, там где будем выводить товар и его количество для выбранного заказа, с помощью формулы

=СУММПРОИЗВ(($B$8:$B$14=$A$20)*($E$8:$E$14=A23)*(СТРОКА($B$8:$B$14)-СТРОКА($B$7)))

определим позиции повтора в исходной таблице (оранжевый столбец в нижней таблице). Это обычная формула (не формула массива).

Наименование товара выведем с помощью простой формулы =ИНДЕКС(C$8:C$14;$B23), аналогично выведем Количество.

Изменив в желтой ячейке номер заказа на 1, нижняя табличка изменится.

Покажем как работает формула =СУММПРОИЗВ(($B$8:$B$14=$A$20)*($E$8:$E$14=A23)*(СТРОКА($B$8:$B$14)-СТРОКА($B$7))) для заказа 1:

  • три выражения $B$8:$B$14=$A$20, $E$8:$E$14=A23 и СТРОКА($B$8:$B$14)-СТРОКА($B$7) порождают 3 массива чисел
  • первый массив – это номера позиций искомого заказа в исходной таблице. Выражение дает {ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ}, т.е.ИСТИНА соответствует номерам позиций 1 и 5 (выделено зеленым). Убедиться в этом просто – достаточно выделить выражение в строке формул и нажать клавишу F9
  • второе выражение дает массив {ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА}, который представляет номер повтора заказа (данный массив соответствует первому повтору). Номер повтора заказа из А23 (1) и из А24 (2) сравнивается номерами повторов заказов в столбце Е. Например, номер повтора 1 есть во многих строках: 1, 2, 3, 7 и часть из них не соответствует заказу №1. Это как раз и показывает массив – значение ИСТИНА стоит у элементов массива №№1, 2, 3, 7
  • произведение этих массивов дает множество, которое соответствует и номеру заказа (1) и его повтору в исходной таблице (1 в строке 23, и 2 в строке 24). Вот этот массив {1:0:0:0:0:0:0}, где 1 соответствует ИСТИНА. 1 получается перемножением 2-х ИСТИНА, все остальные комбинации ЛОЖЬ*ЛОЖЬ, ЛОЖЬ*ИСТИНА дают 0. Перемножение происходит попарно.
  • наконец, умножая предыдущий массив на массив порядковых номеров в исходной таблице получим только тот номер, который соответствует и номеру заказа и его повтору. Он будет только один, остальные в массиве будут равны 0. Вот этот массив для заказа 1 и его повтора 2: {0:0:0:0:5:0:0} Это 5-я позиция в исходной таблице.
  • Функция СУММПРОИЗ() складывает все элементы массива, т.к. ненулевой элемент заведомо только один, то функция отбросит все 0 и выведет позицию.

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