ИНДЕКС и ПОИСКПОЗ по нескольким столбцам
Чтобы найти значение, выполнив сопоставление по нескольким столбцам, используйте формулу массива на основе функций ИНДЕКС и ПОИСКПОЗ, в которую также входят функции МУМНОЖ, ТРАНСП и СТОЛБЕЦ.

Как найти значение, выполнив сопоставление по нескольким столбцам?
Чтобы заполнить соответствующий класс каждого ученика, как показано в приведённой выше таблице, где информация размещена по нескольким столбцам, сначала используйте комбинацию функций МУМНОЖ, ТРАНСП и СТОЛБЕЦ для создания матричного массива. Затем функция ПОИСКПОЗ определит позицию искомого значения и передаст её функции ИНДЕКС, чтобы получить нужный результат из массива.
Общий синтаксис
=INDEX(return_range,(MATCH(1,MMULT(--(lookup_array=lookup_value),TRANSPOSE(COLUMN(lookup_array)^0)),0)))
√ Примечание. Это формула массива, которую необходимо вводить с помощью комбинации клавиш.Ctrl+Shift+Enter.
- диапазон_возврата: Диапазон, из которого формула должна возвращать информацию о классе. Имеется в виду диапазон с классами.
- искомое_значение: Значение, по которому формула ищет соответствующую информацию о классе. В данном случае имеется в виду указанное имя.
- массив_поиска: Диапазон ячеек, в котором находится искомое_значение; диапазон со значениями для сравнения с искомым_значением. Здесь имеется в виду диапазон имён.
- тип_сопоставления 0: Заставляет функцию ПОИСКПОЗ найти первое значение, точно совпадающее с искомым_значением.
Чтобы найти класс Джимми, скопируйте или введите приведённую ниже формулу в ячейку H5 и нажмите Ctrl+Shift+Enter, чтобы получить результат:
=ИНДЕКС()$B$5:$B$7,(ПОИСКПОЗ(1,МУМНОЖ(--())))$C$5:$E$7=G5),ТРАНСП(СТОЛБЕЦ()$C$5:$E$7)^0)),0)))
√ Примечание. Знаки доллара ($) выше указывают на абсолютные ссылки, что означает: диапазоны имён и классов в формуле не изменятся при перемещении или копировании формулы в другие ячейки. Обратите внимание, что знаки доллара не следует добавлять к ссылке на ячейку, представляющую искомое значение, поскольку вы хотите, чтобы она оставалась относительной при копировании в другие ячейки. После ввода формулы перетащите маркер заполнения вниз, чтобы применить формулу к ячейкам ниже.

Пояснение к формуле
=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0)))
- --($C$5:$E$7=G5):Этот фрагмент сравнивает каждое значение в диапазоне $C$5:$E$7 со значением в ячейке G5 и формирует массив из значений ИСТИНА и ЛОЖЬ следующего вида:
{ИСТИНА;ЛОЖЬ;ЛОЖЬ:ЛОЖЬ;ЛОЖЬ;ЛОЖЬ:ЛОЖЬ;ЛОЖЬ;ЛОЖЬ}.
Двойной унарный минус затем преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно, получая массив следующего вида:
{1,0,0;0,0,0;0,0,0}. - COLUMN($C$5:$E$7):Функция СТОЛБЕЦ возвращает номера столбцов для диапазона $C$5:$E$7 в виде массива следующего вида: {3,4,5}.
- ТРАНСП()COLUMN($C$5:$E$7)^0)=ТРАНСП(){3,4,5}^0):После возведения в степень 0 все числа в массиве {3,4,5} превращаются в единицы: {1,1,1}. Затем функция ТРАНСП преобразует столбцовый массив в строковый массив следующего вида:{1;1;1}.
- МУМНОЖ()--($C$5:$E$7=G5),ТРАНСП()COLUMN($C$5:$E$7)^0))=МУМНОЖ(){1,0,0;0,0,0;0,0,0},{1;1;1}): Функция МУМНОЖ возвращает матричное произведение двух массивов в виде: {1;0;0}.
- ПОИСКПОЗ(1,)МУМНОЖ()--($C$5:$E$7=G5),ТРАНСП()COLUMN($C$5:$E$7)^0)),0)=ПОИСКПОЗ(1,){1;0;0},0):Аргумент тип_сопоставления, равный 0, заставляет функцию ПОИСКПОЗ вернуть позицию первого вхождения значения 1 в массиве {1;0;0}, то есть 1.
- ИНДЕКС()$B$5:$B$7,(ПОИСКПОЗ(1,))МУМНОЖ()--($C$5:$E$7=G5),ТРАНСП()COLUMN($C$5:$E$7)^0)),0))) = ИНДЕКС($B$5:$B$7Функция ИНДЕКС возвращает первое значение из диапазона классов $B$5:$B$7, то есть A.
Чтобы легко находить нужное значение, сопоставляя данные по нескольким столбцам, воспользуйтесь нашей профессиональной надстройкой для Excel Kutools для Excel.Инструкции по выполнению этой задачи см. здесь.
Связанные функции
Функция ИНДЕКС в Excel возвращает отображаемое значение из указанной позиции диапазона или массива.
Функция ПОИСКПОЗ в Excel ищет заданное значение в диапазоне ячеек и возвращает его относительную позицию.
Функция МУМНОЖ в Excel возвращает матричное произведение двух массивов: результирующий массив содержит столько же строк, сколько первый массив, и столько же столбцов, сколько второй массив.
Функция ТРАНСП в Excel меняет ориентацию диапазона или массива: например, превращает горизонтальную таблицу, расположенную в строках, в вертикальную — в столбцах, и наоборот.
Функция СТОЛБЕЦ возвращает номер столбца, в котором размещена формула, либо номер столбца указанной ссылки. Например, формула =СТОЛБЕЦ(BD) вернёт 56.
Связанные формулы
Поиск по нескольким критериям с помощью ИНДЕКС и ПОИСКПОЗ
При работе с крупной базой данных в Excel, содержащей множество столбцов и строк с заголовками, бывает непросто найти записи, соответствующие сразу нескольким критериям. В таких случаях на помощь приходит формула массива с функциями ИНДЕКС и ПОИСКПОЗ.
Двусторонний поиск с помощью ИНДЕКС и ПОИСКПОЗ
Чтобы найти значение на пересечении определённых строки и столбца в Excel, воспользуйтесь комбинацией функций ИНДЕКС и ПОИСКПОЗ.
Поиск ближайшего совпадения по нескольким критериям
Иногда требуется найти ближайшее или приблизительное совпадение по нескольким критериям одновременно. Сочетание функций ИНДЕКС, ПОИСКПОЗ и ЕСЛИ позволяет быстро и эффективно решить эту задачу в Excel.
Лучшие инструменты для повышения продуктивности в Office
Kutools для Excel — Помогает Вам выделяться из толпы
Kutools для Excel предлагает более 300 функций,гарантируя, что всё необходимое всегда под рукой…
Office Tab — Включает вкладочное чтение и редактирование в Microsoft Office (включая Excel)
- Переключайтесь между десятками открытых документов всего за секунду!
- Сокращает сотни кликов мышью каждый день — забудьте о «мышечной руке» раз и навсегда!
- Повышает продуктивность на 50 % при одновременном просмотре и редактировании нескольких документов.
- Добавляет эффективность вкладок в Office (включая Excel) — как в Chrome, Edge и Firefox.