在 Google Sheets 中是否有与 Excel 的动态数组 # 运算符等效的操作?

tkp*_*tkp 6 arrays excel filter google-sheets google-query-language

我发现 Excel 的新动态数组最有用的方面之一是 # 运算符让我可以引用行数未知(并且易于更改)的一系列单元格。Google 表格中有类似的东西吗?

例如(在此处查看;在此处下载)。假设我有一个简单的两列原始数据数组,第一列包含姓名,第二列包含年龄。然后,我使用 FILTER() 创建一个新数组,让电子表格的用户选择一个年龄来过滤原始数据。然后我对经过筛选的数组执行一些进一步的操作。

因为我无法提前知道用户将选择哪个年龄作为过滤条件,所以我无法提前知道生成的 FILTER'ed 数组将有多少行,这可能是一个问题。但是,对于 Excel,我不需要知道,因为我可以使用 # 运算符来访问经过 FILTER 处理的数组,而无需知道大小。或者我可以使用 ROWS(G2#) - 假设这是数组左上角的单元格 - 来获取我想要的数字。

Google Sheets 有类似的东西吗?

需要明确的是:我可以想出各种方法在 Google Sheets 中实现与在 Excel 中获得的效果几乎相同的效果。但它们既麻烦又耗时。我正在寻找像 Excel 的 # 运算符一样简单和容易的东西,但我可能只是忽略了它。

有没有?

pla*_*er0 6

在谷歌表格中你做:

G2:G
Run Code Online (Sandbox Code Playgroud)

或者如果你想限制它,那么:

G2:G100
Run Code Online (Sandbox Code Playgroud)

这可以在公式中用作范围。如果你想独立使用它,你就可以

={G2:G}
Run Code Online (Sandbox Code Playgroud)

或者:

=INDEX(G2:G)
Run Code Online (Sandbox Code Playgroud)

或者:

=ARRAYFORMULA(G2:G)
Run Code Online (Sandbox Code Playgroud)

在您的场景中您将使用:

=FILTER(A:A; B:B>=18)
Run Code Online (Sandbox Code Playgroud)

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

=QUERY(A:B; "select A where B >= 18")
Run Code Online (Sandbox Code Playgroud)

  • @tkp 对于未知列,您可以使用“G2:1000”。对于未知的列和行,您需要间接它,例如:`INDIRECT("G2:"&ADDRESS(ROWS(A:A),COLUMNS(1:1)))` (2认同)