1

Я пытаюсь получить массив только значений, которые соответствуют определенным критериям.

У меня есть массив, в котором соответствие этих критериев суммируется в столбце TRUE/FALSE для каждой записи, как таковой

INDEX MEETS_CRITERIA
1     TRUE
2     TRUE
3     FALSE
4     FALSE
5     FALSE
6     TRUE
7     TRUE
8     TRUE
9     FALSE
10    FALSE

Я хочу получить на отдельном листе список без пробелов всех индексов, имеющих значение true в столбце "MEETS_CRITERIA", как показано ниже

INDEX
1
2
6
7
8

Я пытаюсь это с помощью следующей формулы массива:

{=INDEX(ORIGINAL_ARRAY!$A$2:$A$10, MATCH("TRUE",ORIGINAL_ARRAY!$B$2:$B$10, 0))}

Однако это возвращает # N/A.

В чем ошибка в моей формуле или моем подходе?

1 ответ1

2

Как и наблюдение Клифа, ваша текущая формула в любом случае будет подходить только для предоставления одного возврата, а не для списка, который вы даете.

Для этого вам потребуется (при условии, что у вас Excel 2010 или более поздняя версия):

=INDEX(ORIGINAL_ARRAY!$A:$A,AGGREGATE(15,6,ROW(ORIGINAL_ARRAY!$B$2:$B$10)/ORIGINAL_ARRAY!$B$2:$B$10,ROWS($1:1)))

и скопировал вниз.

Что касается маскировки ошибок, то, если предположить, что пример, который вы приводите, является представителем вашей фактической установки - поскольку в исходных данных всего около десятка строк - вы можете позволить себе неэффективную в противном случае настройку IFERROR, а именно:

=IFERROR(INDEX(ORIGINAL_ARRAY!$A:$A,AGGREGATE(15,6,ROW(ORIGINAL_ARRAY!$B$2:$B$10)/ORIGINAL_ARRAY!$B$2:$B$10,ROWS($1:1))),"")

Если рассматриваемый диапазон данных на самом деле довольно большой, тогда будет гораздо предпочтительнее использовать дополнительную ячейку где-нибудь на листе, например, D1, в которой для определения ожидаемого числа возвратов используется одна формула, а именно:

=COUNTIF(ORIGINAL_ARRAY!B2:B10,TRUE)

на который можно ссылаться в самой основной формуле, т.е.

=IF(ROWS($1:1)>D$1,"",INDEX(ORIGINAL_ARRAY!$A:$A,AGGREGATE(15,6,ROW(ORIGINAL_ARRAY!$B$2:$B$10)/ORIGINAL_ARRAY!$B$2:$B$10,ROWS($1:1))))

и будет гораздо более эффективным, чем установка IFERROR, по причинам (если вы заинтересованы), объясненным здесь:

Найдите значение в списке и верните ВСЕ несколько соответствующих значений

С уважением

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