В D2
попробуйте следующее:
=IF(C2<>"",IFERROR(LOOKUP(2,1/(B$1:B1=B2),C$1:C1)<>C2,FALSE),"")
Перетащите вниз.
Примечание: Начальные значения IF
предназначены для проверки пустых значений. согласно вашим данным образца. Поцарапайте, если нет никаких пустых ячеек.
Office 365 - Dynami c Формулы массивов
Согласно комментарию OP, приведенное выше может вернуть #SPILL!
ошибка. Поскольку я лично не имею доступа к этим функциям, следующее является лишь предположением, и было бы здорово, если бы кто-то мог подтвердить:
Взято с здесь :
С приходом динамических c формул массива неявное пересечение больше не играет время от времени. Так как LOOKUP
отбрасывает все , но одно значение в формулах для не динамического c массива, оно больше не применяется в формулах для динамического c массива. Excel теперь поддерживает поиск нескольких значений и больше не выполняет скрытое пересечение без вывода сообщений. Если для возврата значений в сетку недостаточно места, вы увидите ошибку #SPILL. Поэтому нам нужно избежать этого поведения с помощью @
:
=IFERROR(@LOOKUP(2,1/(B$1:B1=B2),C$1:C1)<>C2,FALSE)
В более старых версиях (таких как моя) это @
принято, но беззвучно удалено, поскольку неявное пересечение уже на месте.