Google sheets 使用Google Sheets,我如何创建一个查询,如果一个值不存在,该查询将输出一个“0”?
我有一个电子表格,每次去商店时,我都要在每一行输入食品杂货 我创建了一个查询来输出所有行的每个存储的总和。这很有效Google sheets 使用Google Sheets,我如何创建一个查询,如果一个值不存在,该查询将输出一个“0”?,google-sheets,Google Sheets,我有一个电子表格,每次去商店时,我都要在每一行输入食品杂货 我创建了一个查询来输出所有行的每个存储的总和。这很有效 =QUERY(A9:C, "select C, SUM(B) where B is not null GROUP BY C LABEL C '', SUM(B) ''") 现在我想使用几乎相同的查询,但我想将其限制为仅对过去六个月的条目求和。这是我的疑问: =QUERY(A9:C, "select C, SUM(B) where date
=QUERY(A9:C,
"select C,
SUM(B)
where B is not null
GROUP BY C
LABEL C '', SUM(B) ''")
现在我想使用几乎相同的查询,但我想将其限制为仅对过去六个月的条目求和。这是我的疑问:
=QUERY(A9:C,
"select C,
SUM(B)
where date '2016-08-28' < A
GROUP BY C
LABEL C '', SUM(B) ''")
这也很有效,除了我想让它列出所有商店,如果示例中没有布里斯托尔农场和Safeway等商店的条目,那么我希望它显示为0,而不是忽略它
所以我想让它显示如下:
Name Sum
Ma 10
Mu 20
Mo 30
Mi 40
我该怎么做?好问题
我认为,跳过结果为零的行是查询函数的自然行为。我的建议是使用条件相反且没有标题的第二个查询
变通办法
第一步。原始查询
假设我们有一张小桌子,像这样:
Name Sum
Ma 10
Mu 20
Mo 30
Mi 40
任务是获取cum>10的所有行:
=查询{D83:E87},选择Col1,Col2,其中Col2>10
结果是:
Name Sum
Mu 20
Mo 30
Mi 40
Ma 0
第二步。反向查询
让我们用相反的条件进行另一个查询:
=查询{D83:E87},选择Col1,0其中Col2 10;查询{D83:E87},选择Col1,0,其中Col2如果您不介意添加一列,可以将其隐藏在电子表格中,将其放入J9:
=ARRAYFORMULA(if(A9:A13>Date(2016,8,28),B9:B13,0))
这在K11中:
=QUERY(A9:J13,"select C, sum(J) group by C order by C label sum(J)''")
我找不到马克斯的答案来解决这个问题。也许你可以。谢谢你的回答,Max!我真的想让它只显示最近六个月的数据,所以我需要将该条件添加到WHERE子句中。当它检查过去六个月时,它将忽略所有在此期间没有任何内容的条目。但是,我希望将它们列为0,而不是完全跳过它们。这有意义吗?我为你的样品添加了配方。有趣的解决方案!非常感谢。如何隐藏列?只需单击列标题J,单击箭头,然后从下拉列表中单击隐藏列。
={QUERY(A9:C,
"select C,
SUM(B)
where date '2016-08-28' < A
GROUP BY C
LABEL C '', SUM(B) ''");
QUERY(A9:C,
"select C,
sum(B) - sum(B)
where date '2016-08-28' >= A and B > 0
group by C
LABEL C '', sum(B) - sum(B) ''")}
=ARRAYFORMULA(if(A9:A13>Date(2016,8,28),B9:B13,0))
=QUERY(A9:J13,"select C, sum(J) group by C order by C label sum(J)''")