问题描述
我有一本工作簿,用于跟踪我当地社区的游戏统计数据。我添加了一个图表,该图表会根据一些选择而改变,并使用 filter
来获得所需的结果。数据来自我使用 query
计算月间差异的工作表(因为我无法使用谷歌提供的数据透视选项轻松完成)。其中一个查询看起来像这样
=query('Response Edits'!1:1112,"select A,B,C WHERE A IS NOT NULL AND NOT H matches '"&textjoin("|",TRUE,query('Response Edits'!1:1112,"select min(H) WHERE A IS NOT NULL group by D",0))&"' order by D,C ASC",0)
- A 将时间戳中的月份值转换为正确的调查月份(例如,2020-07-01 将用于 06 调查,2020-07-29 将用于 为07调查)
- B 将时间戳中的年份值转换为正确的调查年份
- C 是调查提交的时间戳
- D 是玩家名称
-
H 是调查提交的玩家 XP(我将其用作懒惰的解决方案,因为它只会增加并且因为我无法弄清楚
使用多个日期时间包含关键短语 date 的方法,例如
NOT C matches date texjoin("|","select min(C)...")
无效)
textjoin 只是删除提交的最早日期,因为它没有月到月的值。以下是上述查询的部分输出以及我认为正确的另一个查询:
7 2020 2020-07-31 23:18:48 ... 6873449 198 11610
8 2020 2020-08-31 22:15:53 ... 7789713 175 8732
9 2020 2020-09-30 23:03:12 ... 5994347 139 8932
当我关闭工作表并重新打开它时,我注意到我的图表只有 0 个值,因为我的带有查询功能的工作表只输出 0。上面的查询和我的其他查询也给出了不同的输出,我有提供了以下部分:
6 2020 2020-06-30 22:04:02 ... 0 0 0
7 2020 2020-07-31 23:18:48 ... 0 0 0
8 2020 2020-08-31 22:15:53 ... 0 0 0
9 2020 2020-09-30 23:03:12 ... 0 0 0
我是使用查询的新手,但公式似乎是正确的,因为如果我将公式中的最后一个 0(这是标题的选项)更改为 1,然后再更改回 0,我会得到所需的结果。
Tl;dr 为什么关闭并重新打开工作簿时查询的数据没有正确输出?以及为什么在公式更改后又改回来(包括选择撤消)后正确输出?是否可能导致查询出现问题的 textjoin
或 matches
?
解决方法
尝试运行这个:
=QUERY('Response Edits'!A1:H1112,"select A,B,C
where A is not null
and not H matches '"&TEXTJOIN("|",1,QUERY('Response Edits'!A1:H1112,"select min(H)
where A is not null group by D",0))&"'
order by D,C",0)