Возможно использование INDEX
, AGGREGATE
, ROW
и IFERROR
:
=IFERROR(INDEX(B2:B4,AGGREGATE(15,6,ROW(A1:A3)/(A2:A4>=E3),1)),"Nil")
Разбивка ключевой части AGGREGATE(15,6,ROW(A1:A3)/(A2:A4>=E3),1)
вниз, используя сценарий 1:
ROW(A1:A3)/(A2:A4>=E3)
: это {1;2;3}/{2;6;3}>=6
. {2;6;3}>=6
оценивается как {FALSE;TRUE;FALSE}
. {1;2;3}/{FALSE;TRUE;FALSE}
оценивается как {#DIV/0!;2;#DIV/0!}
. - Первыйаргумент AGGREGATE -
15
- означает, что мы используем функциональность SMALL
. - Второй аргумент AGGREGATE -
6
- означает, что ошибки игнорируются. - Последний аргумент AGGREGATE -
1
- соответствует второму (k
) аргументу SMALL
, т.е. SMALL(array, k)
. - Таким образом, игнорируя ошибки,
SMALL({#DIV/0!;2;#DIV/0!}, 1)
= 2
. - И аналогично для других сценариев:
- Сценарий 2:
SMALL({#DIV/0!;2;3}, 1)
= 2
. - Сценарий 3:
SMALL({#DIV/0!;2;#DIV/0!}, 1)
= 2
. - Сценарий 4:
SMALL({#DIV/0!;#DIV/0!;#DIV/0!}, 1)
выдает ошибку #NUM!
, поэтому IFERROR
возвращает Nil
.
Сценарий 1:
Сценарий 2:
Сценарий 3:
Сценарий 4: