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)''")