Когда / почему INDEX может заменить ARRAYFORMULA? - PullRequest
1 голос
/ 19 января 2020

Я обнаружил, что INDEX() может заменить ARRAYFORMULA() в некоторых ситуациях. Интересно, это поддерживаемая функция INDEX или просто ошибка, поскольку я не могу найти документацию по функции INDEX, работающей таким образом.

Например, эти две формулы дают одинаковый результат.

=INDEX(ArrayFormula(SPLIT (I2:I75," ")),,1)

=INDEX(SPLIT (I2:I75," "),,1) 

Однако без INDEX, SPLIT(I2:I75," ") дает только один результат, а не массив.

Таким же образом, INDEX может использоваться вместо ARRAYFORMULA с VLOOKUP.

INDEX replaces ARRAYFORMULA

Ячейка [G1] рассчитывается с нормальным значением ARRAYFORMULA.

ARRAYFORMULA

1 Ответ

1 голос
/ 19 января 2020

INDEX (так же, как ARRAY_CONSTRAIN или FILTER) - это «тип» ARRAYFORMULA, который определяет ограничение выходного массива.

Однако, в отличие от ARRAY_CONSTRAIN, в формуле INDEX эти ограничения могут быть частично или полностью опущены. Примеры:

=INDEX(A:B)

=INDEX(A:B,,)

=INDEX(A:B,,1)

=INDEX(A:B, 10, 2)

=INDEX(A:B, 10, )

SPLIT Функция может возвращать массив результатов самостоятельно. пример:

=SPLIT(A2, ",")

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

=ARRAYFORMULA(SPLIT(A2:A20, ","))

вышеупомянутое является наиболее распространенным, но если вы предпочитаете альтернативу, вы можете использовать:

=INDEX(SPLIT(A2:A20, ","))

=ARRAY_CONSTRAIN(SPLIT(A2:A20, ","), 9^9, 1)

=FILTER(SPLIT(A2:A20, "I"), A2:A20<>"♪")
...