Используйте эту формулу массива:
=IF($D2=E$1,"X",SUM(--(ISNUMBER(MATCH(INDEX($A:$A,N(IF({1},MODE.MULT(IF($B$2:$B$15=$D2,ROW($B$2:$B$15)*{1,1}))))),INDEX($A:$A,N(IF({1},MODE.MULT(IF($B$2:$B$15=E$1,ROW($B$2:$B$15)*{1,1}))))),0)))))
Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
Эта формула создает два массива номеров доставки:
MODE.MULT(IF($B$2:$B$15=$D2,ROW($B$2:$B$15)*{1,1}))
Создает массив номеров строк, в которых найдено значение в D2 или E1 в другой половине.
Эти номера строк проходят через N()
массив, INDEX
который приводит к массиву, который затем создает массив доставок, доставивших этот элемент.
В MATCH()
перебирает первый массив и проверяет , если он находится во втором массиве. Если он найден, он вернет число, если не ошибка.
В ISNUMBER()
возвращает TRUE / FALSE в зависимости от количества MATCH или ошибок.
--
Превращает TRUE / FALSE в 1/0 и SUM подведет , что окончательный массив.