Вы можете попробовать использовать SMALL()
в формуле массива следующим образом:
Формула в D2
:
=IFERROR(INDEX($A$1:$A$10,SMALL(($C$2:$C$10=TRUE)*ROW($C$2:$C$10),COUNTIF($C$2:$C$10,FALSE)+(ROW()-1))),"")
Введите через Ctrl Shift Введите
Обратите внимание, что если ваши значения действительно логические, просто замените текстовые строки в сравнении для логических значений.
Другой вариант для D2
может быть:
=IFERROR(INDEX($A$2:$A$10,MATCH(0,IF($C$2:$C$10=TRUE,COUNTIF($D$1:D1,$A$2:$A$10),""),0)),"")
Также вводится как массив.
И еще один вариант, может быть, даже более удобный для пользователя, это сводная таблица вашего диапазона и фильтра Дата в SpecialDay ...
EDIT
После просмотра вашего видео:
- Ваш первый вариант показывает
Date
, потому что вы искали текстовые строки вместо логических. Измените текстовые строки True
и False
на фактически записанные логические значения TRUE
и FALSE
.
- Оставьте ссылку
A1
, это правильно. Вторая часть формулы возвращает истинное число. Поскольку вы используете INDEX()
, он начнет считать строки из первой строки этого диапазона. Так что ссылка $A$1:$A$10
в моей первой формуле верна.
- Следующее, что вы попробовали, - это использование значения
1
для истинных значений. Это не сработает. Формула будет пытаться найти на самом деле значения 1
, которых нет. Для этого формула вернет массив нулей. В результате чего фактического значения не будет, формула индекса вернет ячейку A1.
Итак, пробники для видео и усилий! Решение для вас - узнать, как записать реальные логические значения TRUE
и FALSE
, они не поставляются с двойными кавычками. Я обновлю обе формулы, так как вы все равно не используете текстовые строки.