Вот один вариант, если у вас есть Excel 2007
Поместите эту формулу в C1
=IFERROR(INDEX(A1:A5,MATCH("Y",B1:B5,0)),"")
тогда этот в C2 скопировал
=IFERROR(INDEX(A$1:A$5,MATCH(1,INDEX((B$1:B$5="y")*(COUNTIF(C$1:C1,A$1:A$5)=0),0),0)),"")
Вы можете сделать это в более ранних версиях, но требуются более длинные формулы, чтобы гарантировать, что вы не получите значений ошибок после исчерпания действительных совпадений
Пояснение:
Формула 1 использует MATCH
, чтобы найти позицию первого "y" в B1:B5
, затем INDEX
возвращает соответствующее значение из A1:A5
. Если бы ваши столбцы были наоборот, вы можете использовать VLOOKUP
, INDEX/MATCH
- это стандартный способ «левого поиска».
Формула 2 использует MATCH
, чтобы найти положение первой строки, где выполняются 2 условия, B1:B5
= "y" и A1:A5
<> уже найденное значение. Уже найденные значения находятся в столбце C выше, поэтому функция COUNTIF
просматривает ячейки выше и производит подсчет для каждого значения в столбце A в указанном выше диапазоне (который увеличивается при перетаскивании формулы вниз) - отсчет нуля означает что это значение еще не было выбрано. Как только MATCH
идентифицирует номер строки, INDEX
получает значение из этой строки в столбце A.