Google表格查询:可以在不选择的情况下进行分组/排序吗?

时间:2016-08-01 00:23:43

标签: google-sheets

在Google表格中,我每天都有多个正面和负面的数字数据条目。我想使用查询函数创建一个表,这样我就有以下行:Date,Negative,Positive,Total。

Date        Value
28/07/2016  10
28/07/2016  -0.9
28/07/2016  -20
29/07/2016  -30
29/07/2016  -12
29/07/2016  18
29/07/2016  -3
30/07/2016  7
30/07/2016  7
30/07/2016  15
30/07/2016  -1
30/07/2016  7

看起来我可以用查询函数做三个公式:

=query(A2:B13,"select A, sum(B) where B < 0 group by A order by A label A 'Date', sum(B) 'Negative'", -1)
=query(A2:B13,"select A, sum(B) where B > 0 group by A order by A label A 'Date', sum(B) 'Positive'", -1)
=query(A2:B13,"select A, sum(B) group by A order by A label A 'Date', sum(B) 'Total'", -1)

但问题是我每次都必须选择日期才能对其进行分组和排序。如果我没有选择A,则函数返回#VALUE!。所以结果如下:

Date        Negative    Date        Positive    Date        Total
28/07/2016  -20.9       28/07/2016  10          28/07/2016  -10.9
29/07/2016  -45         29/07/2016  18          29/07/2016  -27
30/07/2016  -1          30/07/2016  36          30/07/2016  35

我可以以某种方式避免选择积极和总计的日期吗? 我知道我可以简单地隐藏这些列,但还有另一种方法吗?

2 个答案:

答案 0 :(得分:2)

尝试使用double queryarrays {}组合单个公式:

={query(A2:B13,"select A, sum(B) where B < 0 group by A order by A label A 'Date', sum(B) 'Negative'", -1), query(query(A2:B13,"select A, sum(B) where B > 0 group by A order by A label A 'Date', sum(B) 'Positive'", -1),"select Col2"), query(query(A2:B13,"select A, sum(B) group by A order by A label A 'Date', sum(B) 'Total'", -1),"select Col2")}

这种结构: query(query(...),"select Col2")将仅选择第二列数据。

{data1, data2, data3}data2data3置于新列的右侧。

答案 1 :(得分:1)

我不知道它是否更容易,但您可以使用= if(B2&gt; 0,B2,“”)创建列C,使用= if(B2 <0,B2,“”创建列D然后把它们填满。然后使用:

=query(A2:D13,"select A, sum(D),sum(C),sum(B) where A is not null group by A order by A label A 'Date', sum(D) 'Negative',sum(C)'Positive',sum(B) 'Total'", -1)