动态QUERY范围

时间:2018-10-13 13:11:32

标签: google-sheets

我有一个电子表格,在一个标签中,我有一个表,其中包含来自其他标签的计算数据。这是11列的小桌子。 Row(1)是标题行,Column A是项目列表,B到J列是类型。数据仅包含数字。

在计算数据时,从B到J的某些列中的time-time值可以完全为零。我想使用QUERY创建此表的子集,但构造一个动态范围,仅获取具有至少1个值且大于零的列。

我知道可以将范围创建为类似{A:A \ B:B \ D:D}的数组,但就我而言,我不知道哪些列的值可以大于零,不想将列的值完全设为零。

我创建了一个表达式来将该数组值连接为单元格中的文本,但是无论是INDEX还是TEXT函数,我都无法将其与QUERY公式一起使用。表格是这样的:

商品TypeA TypeB TypeC TypeD
青铜0 0 0 0
银0 0 1 0
黄金0 0 1 0
Titanimum 1 0 0 0

对于此表快照,我希望QUERY范围为 {A:A \ B:B \ D:D} 。但是,在计算数据时,表格可能会在2小时或第二天之后如下所示:

商品TypeA TypeB TypeC TypeD
青铜1 0 0 1
银0 0 1 0
黄金0 1 1 0
Titanimum 1 0 0 0

因此,对于此表快照,我希望查询范围为 {A:A \ B:B \ C:C \ D:D \ E:E} 。。 >

这可行吗?以及如何实现或构建动态QUERY范围?

感谢大家...

1 个答案:

答案 0 :(得分:1)

您可以使用FILTER命令根据条件从范围中删除列。

未过滤

Items   TypeA   TypeB   TypeC   TypeD   TypeE   TypeF   TypeG
Bronze  1        0       0       1       0       0        1
Silver  1        1       0       1       0       0        1
Gold    1        0       0       1       0       0        1
Titan   1        0       0       1       1       0        1
1       4        1       0       4       1       0        4

已过滤以删除总数为0的列

Items   TypeA   TypeB   TypeD   TypeE   TypeG       
Bronze  1       0       1       0       1       
Silver  1       1       1       0       1       
Gold    1       0       1       0       1       
Titan   1       0       1       1       1

“技巧”是对列数据求和(例如),然后测试> 0

过滤器表达式为:

=FILTER(A1:H5,A6:H6 >0)

通过解释方式:

A1:H5是要过滤的范围; A6:H6 >0选择第6行中所有值> 0的列

我在A6中放置了1,以确保包含colA。

您现在可以对以上表达式返回的范围进行查询。