【问题标题】:Google Sheets QUERY function dealing with dates处理日期的 Google Sheets QUERY 函数
【发布时间】:2021-11-07 18:30:24
【问题描述】:

我的 GoogleSheets 文件中有一个表格 (gDisplay),如下所示:

所以,在另一个表中,我可以毫不费力地运行这个查询:

=QUERY(gDisplay!A2:I;"SELECT sum(F) WHERE A > '2021-09-01' ")

但我需要获取上周的结果,并且我猜测下面的查询可以工作:

=QUERY(gDisplay!A2:I;"SELECT sum(F) WHERE A > date '"&TEXT(TODAY()-8,"yyyy-mm-dd")&"' ")

但它不起作用,我没有幸运地寻找答案。有什么线索可以解决这个问题吗?

【问题讨论】:

标签: arrays datetime google-sheets filter google-query-language


【解决方案1】:

8 之后你需要分号而不是逗号:

=QUERY(gDisplay!A2:I;
 "SELECT sum(F) 
  WHERE A > date '"&TEXT(TODAY()-8; "yyyy-mm-dd")&"'")

但是试试:

=INDEX(QUERY(gDisplay!A2:I*1; "SELECT sum(Col6) WHERE Col1 > "&DATEVALUE(TODAY()-8)))

【讨论】:

  • 我们越来越近了:现在没有错误消息,但它在单元格中没有返回任何内容...
  • 酷,似乎工作 :-) 为什么在引用表格/单元格后出现“*1”?
  • “很可能你得到了混合数据集。查询不喜欢这样,所以我们强制所有值都是数字而不是纯文本,我们使用乘法来做到这一点”这很聪明,确实 :-) 谢谢很多,@player0 !!!!!
  • 我看到了一个奇怪的行为(看看 cel M:15,在“Sumario7”中):它说 Col12 不存在,但它确实存在。不仅如此,该查询仅在 Col9 中有效及以下。
  • @LuizC 是的,这是真的。你的范围是 A2:i 和列 i 是第 9 列,所以如果你想用第 12 列做事情,你的范围需要是 A2:L
猜你喜欢
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 2016-12-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多