Вот формула рабочего листа.Предполагая заголовок в строке 1, данные, начинающиеся со строки 2 и Entity1
, Entity2
и Value
в столбцах A
, B
и C
соответственно, помещают
=IFERROR(INDEX(C$2:C2,MATCH(B3&"$"&A3,A$2:A2&"$"&B$2:B2,0)),"")
в C3
в виде формулы массива (CTRL-SHIFT-ENTER
) и заполните.
Пояснение
Формула выполняет индекс / сопоставление, как вы рассматривали.Для поисковой части совпадения Entity2
и Entity
объединяются в одну строку.Существует необязательный разделитель $
между двумя двумя объектами (объяснено ниже).Для массива совпадения это Entity1
и Entity2
, объединенные одним и тем же разделителем.Массив начинается в первой строке данных и заканчивается строкой над текущей строкой.
Если совпадение возвращает индекс, он подключается к INDEX
вместе с массивом значений до текущего.Если при совпадении возвращается ошибка # ЗНАЧЕНИЕ, оно попадает в функцию IFERROR
.
Разделитель Рассмотрим две пары Entity1
и Entity2
, причем первая пара(щуки, пик) и второе существо (щука, говорить).Объединение любого из них без разделителя дает «пикос» и может привести к ошибочному совпадению.Разделитель защищает от этого.В качестве разделителя вы можете выбрать любую строку, которая не встречается в ваших данных.
Надеюсь, что это поможет