Как в Google Таблицах элементы массива могут быть переданы как отдельные аргументы встроенной функции Google Таблиц? - PullRequest
0 голосов
/ 04 августа 2020

Мой вопрос очень похож на тот, который описан здесь: Как я могу передать элементы массива в качестве отдельных аргументов функции? Дело здесь в том, что это делается внутри листов Google. В столбце A есть ряд записей, из которых я хочу отфильтровать те, которые соответствуют определенным критериям, а затем в некоторых других отдельных ячейках заполнить n-й результат фильтра.

COL A1: A4

John A

Hector C

Mario G

Hecate J

Ячейка C4 : =CHOOSE(1,FILTER(A1:A4, LEFT(A1:A4,1)="H"))

Ячейка D8 : =CHOOSE(2,FILTER(A1:A4, LEFT(A1:A4,1)="H"))

Но происходит то, что C4: C5 заполняются Hector C и Hecate J , а D8 возвращает "Функция ошибки ВЫБРАТЬ значение параметра 1 равно 2. Допустимые значения от 1 до 1 включительно. . "

Я пришел к выводу, что массив, который возвращает FILTER, просто принимается функцией CHOOSE как единственный аргумент, вместо того, чтобы принимать отдельные элементы в качестве аргументов. Я пробовал возиться с ArrayFormula, но не повезло. Я пробовал затянуть "..." и, очевидно, не распознал его как функцию.

Есть идеи, которые не связаны с написанием моей собственной функции сценария? Спасибо.

1 Ответ

0 голосов
/ 04 августа 2020

Вместо этого можно использовать index () :

Затем вы можете выбрать n-й элемент списка следующим образом:

=index(FILTER(A1:A4, LEFT(A1:A4,1)="H"),2)

Вместо 2 в качестве номера печатной копии вы также можете указать длину списка, чтобы взять, например, последний элемент отфильтрованного списка:

=index(FILTER(A1:A4, LEFT(A1:A4,1)="H"),COUNTA(FILTER(A1:A4, LEFT(A1:A4,1)="H")))
...