Предположение: значения просто должны существовать, а не то, что они должны быть из эквивалентной строки.
=If(IfError(Match(A2,P:P,0),0)*IfError(Match(G2,M:M,0),0)*IfError(Match(H2,L:L,0),0)>0,1,0)
Для каждого IfError вы будете выводить номер строки (> 0), если вы соответствуете, или если совпадений нет, будет выведен ноль. Умножьте что-нибудь на ноль, и вы получите ноль, что позволяет выводить 1 или 0 для true / false в главном операторе If.
Если они должны быть из одной строки, вы можете сравнить 2 совпадения, которые зависят от переходного свойства (A = B, B = C, поэтому A = C):
=If(And(Match(A2,P:P,0)=Match(G2,M:M,0),Match(G2,M:M,0)=Match(H2,L:L,0)),1,0)
Edit1:
Согласно моему комментарию (к этому ответу) о ложных отрицаниях, UDF или подпрограмма в VBA была бы более подходящей, учитывая, что Match()
возвращает первую строку, в которой есть совпадение.
Поскольку это не пост с тегами VBA, это немного выше ожидаемого ответа ... Моя рекомендация:
A) Убедитесь, что вам удобно использовать VBA.
B) Сделайте сообщение о создании пользовательской функции (обратите внимание, что любой пост здесь о VBA имеет ожидание того, что автор может взаимодействовать с экспертом по этой теме и будет прилагая усилия для написания кода самостоятельно, поскольку StackOverflow не является службой кода для вас).
Чтобы помочь определить, что может быть в вашем UDF:
Цикл для прохода значений от первой строки до последней строки в столбце поиска (т. Е. L, M, & P)
Переменная для динамического определения последней строки вашего столбца поиска
Оператор if для сравнения значений из ваших значений поиска (то есть, A2, G2, H2) с значениями поиска на текущей итерации цикла
Выход 1 (соответствует) или 0 (нет соответствия).
Есть много способов сделать это с VBA; надеюсь, это хорошее начало для тебя, Ирина!