在Google Sheets中是否有类似于Excel的动态数组#运算符的等价物?

6
我发现Excel的新式动态数组中最有用的一个方面是#运算符,它允许我引用一系列单元格,其中行数未知(并且可能会更改)。在Google表格中是否有类似的功能?
例如(查看此处;下载此处)。假设我有一个简单的两列原始数据数组,第一列包含名称,第二列包含年龄。然后,我使用FILTER()创建一个新数组,让我的电子表格用户选择一个年龄来过滤原始数据。然后我对该FILTER'ed数组进行进一步操作。
因为我无法预先知道用户将选择哪些年龄作为筛选条件,所以我无法预先知道结果过滤后的数组会有多少行,这可能是一个问题。然而,在Excel中,我不需要知道,因为我可以使用#运算符来访问FILTER'ed数组,而不必知道大小。或者,如果我想要知道数量,我可以使用ROWS(G2#)--假设那是数组左上角单元格。

Google Sheets有类似的东西吗?

明确一下:在Google Sheets中,我可以想出各种实现方式,几乎可以达到我在Excel中得到的效果。但它们很麻烦,耗时。我正在寻找的是像Excel的#运算符一样简单易行的东西,我可能只是忽略了它。

有吗?

3个回答

5
在 Google Sheets 中,您需要执行以下操作:
G2:G

或者如果你想要限制它:

G2:G100

这可以作为范围在公式中使用。但是,如果您想单独使用它,则需要这样做。

={G2:G}

或者:
=INDEX(G2:G)

或者:
=ARRAYFORMULA(G2:G)

在您的场景中,您需要使用:

=FILTER(A:A; B:B>=18)

或者您可以使用 SQL 查询,例如:

=QUERY(A:B; "select A where B >= 18")

1
哇,对于范围的第二部分使用无行号符号就足够了!谢谢。但是,如果是一个二维数组呢?在 Excel 中,我可以使用 G2# 来引用一个数组,其中 G2 是左上角单元格,具有未知行和列数。 - tkp
2
@tkp 对于未知的列,您可以使用 G2:1000。对于未知的行和列,您需要间接地使用它,例如:INDIRECT("G2:"&ADDRESS(ROWS(A:A),COLUMNS(1:1))) - player0

0
我认为这个问题还没有得到解答,主要是因为没有一个解决方案能够接近单元格Excel溢出符号的功能,特别是当在数组上进行复杂操作并且公式变得越来越长难以跟踪时。
此外,更重要的是,上面提到的G2:G样式解决方案如果在G列的最后一个数组条目下输入与G2数组无关的任何内容,将会产生错误的结果。当使用这种方法时,操作不能在原始数组下方进行,这大大增加了操作大型数组所需的空间。所提出的解决方案必须附带这个重要的警告。

0
一个解决方法是在计数和序列中使用公式。 例如:
=Sequence(CountA(Filter(answer with multiple rows))

这会动态计算出您筛选列表中的任何内容的数量。

这需要参考一个已知的范围,这与所描述的问题相悖,对吧?Excel 的溢出范围就解决了这个问题。 - lb_so

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接