如何仅从FILTER结果中获取某些列?

Jon*_*han 21 google-sheets

我正在使用FILTER从一个范围中提取行,并且只想获取某些列.例如,我按D过滤,但只想按相反的顺序排列B,C.我试着用QUERY:

=QUERY(filter(B:D,D:D>=2), "select C,B")- 错误:无法分析函数QUERY参数2的查询字符串:NO_COLUMNC
=QUERY(filter(B:D,D:D>=2), "select *")- 显示所有列,因此QUERY应该工作...

QUERY的结果怎么样FILTER?有没有其他方法来实现这一目标

Ada*_*amL 51

在查询计算数组时,需要使用Colx表示法而不是列字母:

=QUERY(FILTER(B:D,D:D>=2),"select Col2, Col1")

顺便说一句,只需使用QUERY即可实现:

=QUERY(B:D,"select C, B where D >= 2")

或者只是过滤器:

=FILTER({C:C,B:B},D:D>=2)

  • 我希望我能更加努力. (2认同)
  • @arno 免责声明,我只是一个对 Sheets 有点兴趣的最终用户。我相信您的第二部分的答案是否定的,因为 QUERY 似乎将处理转移到 Google Visualization API,其中 FILTER 在 Sheets 引擎中处理。再次,我的意见/最佳猜测来自那里的信息。回答第一部分 - 有趣的是,我认为 QUERY 对大数据集具有更好的性能,我再次猜测这是因为它使用了设计用于在其他上下文中处理大数据集的相同 API。 (2认同)

Gan*_*ula 9

虽然使用查询功能简单直接。还有另一种方法可以使用该Filter函数来实现此输出

您可以将原始FILTER函数嵌套在another FILTER函数内,并指定一个1由 和0组成的数组,指出您需要哪一列,不需要哪一列。

=Filter( FILTER(B2:E6,D2:D6>10900) , {1,0,0,1} )
Run Code Online (Sandbox Code Playgroud)


Max*_*rov 7

随时随地使用数组怎么样?

=FILTER({B:B, D:D},D:D>=2)

通过这种方式,您可以就地选择列,并且如果添加新列,它们也不会改变。


use*_*939 7

有一个更直接的方法。

=CHOOSECOLS(FILTER(B:D,D:D>=2), 1,3)
Run Code Online (Sandbox Code Playgroud)

其中 1 和 3 是列索引