在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) ''")
我想不拼写这个的原因是因为这个查询是动态生成的。这是可能的,还是我必须单独为查询生成字符串?
答案 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个公式中的A2
和10
,以返回不同数量的子集。