处理按日期对行进行分组的 Google Sheets 查询所产生的间隙

Handling gaps that result from a Google Sheets query that group rows by date

在 Google 表格中,我有一个范围,其中包含事件列表以及它们每天发生的次数。我通过查询每个事件并给它一个列,在另一个 sheet 的列中显示此数据。我 运行 遇到的问题是某些日期没有发生事件,并且这不会将计数为“0”的相应行添加到我的源数据中,从而破坏了我呈现数据的方式别处。

这是源格式的示例(请注意,10 月 2 日没有任何事件 2 数据):

2019-10-01,Event 1,12
2019-10-01,Event 2,8
2019-10-02,Event 1,16
2019-10-03,Event 1,7
2019-10-03,Event 2,21

...然后我 运行 像这样查询以填充列:

=QUERY(event_data, "SELECT C WHERE B = 'Event 1' GROUP BY A)

现在,如果我为事件 2 执行此操作,它将在 10 月 1 日之后立即跟进 10 月 3 日的数字,当我并排显示这两个事件时,差距会使这些结果看起来像是来自 10 月 2 日的结果:

Date       Event 1  Event 2
2019-10-01   12        8 
2019-10-02   16        7
2019-10-03   21

在 Google Sheets 中有什么合理的方法可以解决这个问题吗?我知道您不能真正在查询中执行 left/inner 连接。

我认为更好的方法是重写我用来填充源范围的 SQL 查询,以便它 returns 首先是这样的一行:

2019-10-02,Event 2,0

只是想知道是否有解决办法。

您可以在 QUERY 中旋转内容:

=QUERY(A1:C, "select A,sum(C) where A is not null group by A pivot B", 0)