何时/为什么可以用INDEX代替ARRAYFORMULA?

时间:2020-01-18 21:55:52

标签: google-sheets filter google-sheets-formula array-formulas gs-vlookup

我发现function f<T extends { limit: number, page: number }>( t: T, x: Omit<T, "page"> & { page: number; } ): Omit<T, "page"> & { page: number; } { return x; } const okayPage100 = f(page7, { limit: 456, page: 100 }); console.log(okayPage100.page); // number at compile time, 100 at runtime, okay function g<T extends { limit: number, page: number }>( t: T, x: Omit<T, "page"> & Pick<T, "page"> ): Omit<T, "page"> & Pick<T, "page"> { return x; } const ret: PageSeven = g(page7, page7); // still okay 在某些情况下可以代替INDEX()。 我想知道这是ARRAYFORMULA()的受支持函数还是一个错误,因为我找不到以这种方式工作的INDEX函数的任何文档。

例如,这两个公式给出的结果相同。

INDEX

但是,如果没有=INDEX(ArrayFormula(SPLIT (I2:I75," ")),,1) =INDEX(SPLIT (I2:I75," "),,1) INDEX仅给出一个结果,而不是数组。

以相同的方式,可以使用SPLIT(I2:I75," ")代替INDEXARRAYFORMULA

INDEX replaces ARRAYFORMULA

[G1]单元格是使用常规VLOOKUP计算的。

ARRAYFORMULA

1 个答案:

答案 0 :(得分:1)

INDEX(与ARRAY_CONSTRAINFILTER相同)是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<>"♪")