Excel возвращает массив, если условие выполняется - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь получить эффект того, что когда у меня есть оператор if: if ({TRUE; FALSE; TRUE}, {1,2,3}) он вернется с {1,3}, есть ли способ получить этот эффект с массивом условий и вернуть массив результатов?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Если есть ФИЛЬТР массива Dynami c:

=FILTER({1,2,3},TRANSPOSE({TRUE;FALSE;TRUE}))

Без динамич. c Формула массива:

=TRANSPOSE(MODE.MULT(IF({TRUE;FALSE;TRUE},ROW(1:3)*{1,1})))

Это формула массива, зависящая от единиц версии, может потребоваться подтверждение с помощью Ctrl-Shift-Enter при выходе из режима редактирования.

0 голосов
/ 28 февраля 2020

Эта формула будет делать то, что вы говорите, что вы хотите.

Обратите внимание, что есть множество TRANSPOSE функций. Это потому, что ваши логические значения разделены точкой с запятой, а ваш condition_if_true результат - запятой.

 =TRANSPOSE(AGGREGATE(15,6,IF(1/{TRUE;FALSE;TRUE},TRANSPOSE({1,2,3})),ROW(INDIRECT("1:"& SUM(--{TRUE,FALSE,TRUE})))))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...