Google表格查询列的子集

时间:2016-03-23 15:44:19

标签: google-sheets google-query-language

在Google工作表中,我需要查询表的子集。 表格范围为A1:K,其中A列用于过滤 我想构建一个看起来像这样的查询:

=query(A1:K,"Select B,C,D,E,F,G,H,I,J,K where A =x")

除了我希望它看起来更像:

=query(A1:K,"Select B-K where A =x")

这可能吗?

在我的情况下,我还需要能够平均这样做,所以:

=query(A1:K, "Select avg(B-K) where A=x label avg(B-K) ''")

我想不拼写这个的原因是因为这个查询是动态生成的。这是可能的,还是我必须单独为查询生成字符串?

1 个答案:

答案 0 :(得分:1)

我认为,唯一的方法是生成字符串。

但如果你这样查询:

=query({A1:K}, "Select ...")

然后A-Z表示法变为Col1,Col2,Col3等。你可以利用它: 使用此公式生成文本“Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9,Col10,Col11”:

=join(", ",ARRAYFORMULA("Col" & row(OFFSET(A2,,,10))))

此公式将制作文本“AVG(Col2),AVG(Col3),AVG(Col4),AVG(Col5),AVG(Col6),AVG(Col7),AVG(Col8),AVG(Col9), AVG(Col10),AVG(Col11)“:

=join(", ",ARRAYFORMULA("AVG(Col" & row(OFFSET(A2,,,10))&")") )

同时更改上述2个公式中的A210,以返回不同数量的子集。