Как мне проиндексировать все значения больше 50?

150
60
50
70
100
200

2 ответа2

2

Если вы хотите список в том же порядке, что и список ссылок, то:

=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$1:INDEX(A:A,MATCH(1E+99,A:A)))/($A$1:INDEX(A:A,MATCH(1E+99,A:A))>50),ROW(1:1))),"")


Если вы хотите их в числовом порядке, то мы можем избавиться от INDEX:

=IFERROR(AGGREGATE(15,6,$A$1:INDEX(A:A,MATCH(1E+99,A:A))/($A$1:INDEX(A:A,MATCH(1E+99,A:A))>50),ROW(1:1)),"")

Чтобы сделать нисходящее (от самого большого до самого маленького), измените значение 15 на 14


Они больше, чем нужно для фиксированного набора данных.

Формулы типа массива должны быть ограничены набором данных. Если ваш набор данных фиксирован, вы можете заменить оба $A$1:INDEX(A:A,MATCH(1E+99,A:A)) на $A$1:$A$6 и он будет немного меньше.

$A$1:INDEX(A:A,MATCH(1E+99,A:A)) находит и устанавливает диапазон, начиная с A1 и заканчивая последней ячейкой с номером в столбце A.

1

Другой способ, которым вы можете просто вернуть значения больше 50, это с помощью формулы массива (при условии, что ваш список A1:A20):

=INDEX($A$1:$A$20,SMALL(IF($A$1:$A$20>50,ROW($A$1:$A$20)-ROW($A$1)+1),ROWS($A$1:A1)))

(войти с помощью CTRL+SHIFT+ENTER)

И просто оберните IFERROR([formula],"") вокруг него, чтобы скрыть ошибку #NUM , возникающую, когда больше нет совпадений. Если вы хотите вернуть значения снизу вверх, просто измените SMALL на LARGE в формуле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .