Я чувствую себя здесь как мошенник ... не задавайте мне вопросов VBA!
Я отмечаю, что использование MAX
фактически означает, что ваша формула (и исправленная версия Криса) на самом деле дает последнее непустое совпадение. Вы также можете сделать это с формулой не-CSE LOOKUP
, т.е.
=LOOKUP(2,1/(B$2:B$6<>"")/(A$2:A$6=C1),B$2:B$6)
, который вернет # N / A, если нет совпадений
вместо текста «нет совпадения» вместо этого, при условии, что формула возвращает текстовые значения, которые можно использовать в 2003-совместимом
=LOOKUP("zzz",IF({1,0},"No match",LOOKUP(2,1/(B$2:B$6<>"")/(A$2:A$6=C1),B$2:B$6)))
Для первого непустого совпадения вы можете использовать INDEX/MATCH
аналогичным образом, т.е.
=INDEX(B$2:B$6,MATCH(1,(B$2:B$6<>"")*(A$2:A$6=C1),0))
подтверждается сочетанием клавиш CTRL + SHIFT + ENTER