【问题标题】:Comparing dates in Google Sheets QUERY() formula比较 Google 表格 QUERY() 公式中的日期
【发布时间】:2018-08-15 01:20:42
【问题描述】:

请寻求帮助。

首先,这是我遇到问题的函数:

=IFERROR(
  QUERY(
    OrderDetails!A8:Q9,
    "SELECT SUM(J) where Q >= date '" & TEXT(D3,"yyyy-mm-dd") & "' label sum(J) ''"
  ),
  0
)

数据范围内的日期(OrderDetails!A8:Q9,列 P 是 Date & Q 是 DateOnly)如下所示:

我手动添加了 Q 以尝试进行日期匹配,但 P 是我更喜欢使用的原始数据。

接下来是SUM(J),它们只是订单余额。如果我删除 WHERE 子句,查询将按预期运行。

D3 是我要匹配的列日期,格式为:2018 年 8 月 13 日,但我已在屏幕上将其格式化为仅 DDD。

为了在单元格中显示实际值而不是标题,我使用了label sum(J) ' '

运行时我收到消息“Nothing to return”。

任何人都可以发现代码或我的方法存在明显错误吗?如果需要,很高兴添加任何进一步的细节。

【问题讨论】:

  • 你有没有在你有 d3 的地方尝试过 datevalue(d3)?应该是多余的,但以防万一?
  • 我刚刚尝试将其添加进去,我收到一个新错误“DATEVALUE 参数 '13' 无法解析为日期/时间。”我假设 13 是天数,也许它以错误的格式解析。
  • 那个单元格引用不正确,应该是D2,而不是D3。新错误是它无法解析“Mon”。我将 dd/mm/yyyy 样式中未格式化的日期添加到新行并删除了 iferror 检查。我得到了和以前一样的关于“没有什么要退货”的回应。
  • 检查 =TEXT(whatever it now,,"yyyy-mm-dd") 可能是值得的(没有周围的查询)。也许你已经这样做了。
  • 是的,我检查过了。不过谢谢。 :) 它按预期返回 2018-08-13。

标签: google-sheets google-sheets-query


【解决方案1】:

在 Q8 中填充:

=left(P8,10)*1

然后抄下来。

QUERY 尝试将日期(在 D2/3 中)与 string 函数 (LEFT) 的输出进行比较失败。 *1 将字符串强制转换为日期。左对齐是内容是文本的线索。

【讨论】:

  • 谢谢你。我离开了(P8,10),但最后没有 *1。您能否分享一下它的作用或指向我的学习资源?
  • 明白。谢谢你的线索。为以后的工作牢记这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多