在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
我可以以某种方式避免选择积极和总计的日期吗? 我知道我可以简单地隐藏这些列,但还有另一种方法吗?
答案 0 :(得分:2)
尝试使用double query和arrays {}组合单个公式:
={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}
将data2
,data3
置于新列的右侧。
答案 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)