【问题标题】:Query and compare date on google sheets在谷歌表格上查询和比较日期
【发布时间】:2018-01-28 15:38:33
【问题描述】:

我正在将 sheet1 的副本复制到另一个 sheet2(同一个文档)上,并且 query() 工作正常,直到我要过滤的列是公式单元格(长的每个都有查询、匹配等)。

我想要做的是过滤 sheet1 中 M 列中的事件日期即将到来的行(有更多过滤条件,但只是为了简化这是主要问题)。

我不希望日期为空、过去(各种日期格式)或公式给出空字符串“”结果的行。

我尝试过的公式(会出错) - 请注意,我只是选择 2 列进行测试:

=query(sheet1!A3:N, " select I,M where I = 'Singapore' AND DATEVALUE(M)>TODAY() ",0)

=query(sheet1!A3:N," select I,M where I = 'Singapore' AND M>TODAY() ",0)

此公式不会给出错误但不会显示正确的数据 - 显示除 2017 年 1 月 - 2017 年 8 月 7 日以外的所有数据:

=FILTER(sheet1!A3:N, sheet1!I3:I="Singapore", sheet1!M3:M>TODAY())

这个公式给出了空输出:

=query(sheet1!A3:N, " select I,M where I = 'Singapore' AND M='22 August' ",0)

我是谷歌表格和应用程序脚本的新手,因此感谢任何人的任何建议 谢谢!!

【问题讨论】:

  • “各种日期格式”让我担心让它工作的可能性......它们是日期还是有时只是字符串?您可以通过单击它来检查它,如果弹出日历则它是一个日期,否则它不是并且没有公式能够得到它......
  • @Sergeinsas 哦,我明白了,它们是字符串。有些是自行输入的,看起来像“23 August”,在公式栏上查看时会自动格式化为 23/08/2017。其他是通过看起来像“2017 年 7 月 22 日星期六”的表单生成的,但公式栏显示“22/07/2017 13:00:00”。
  • @Sergeinsas 对不起,双重评论,但你的意思是没有办法过滤日期字符串?我可以以某种方式将它们更改为日期吗
  • 字符串和日期在公式中的处理方式完全不同(在 JavaScript 中也是如此),从各种字符串格式转换为日期从来都不是一件容易的事(至少当它需要完全万无一失时;)) .首先要做的是执行转换,在这个论坛上搜索 JavaScript 标签可能吗? stackoverflow.com/…
  • @Sergeinsas 好的,感谢您的提醒! :) 因此,当我确实将它们按日期排序时,我可以说我可以使用 today() 与列 M 进行比较吗?

标签: google-apps-script google-sheets google-sheets-query


【解决方案1】:

Query 中没有 today()。

=query(sheet1!A3:N, " select I,M where I = 'Singapore' AND M > now() ",0)

这在理论上应该有效,前提是您拥有任何格式的 M 中的所有正确日期,Google 表格可以识别这些日期(即,公式栏显示正确的日期或时间),而不管实际字符串如何。如果没有,您应该手动将所有剩余的日期转换为正确的格式。要在查询公式中输入的正确日期格式是date 'yyyy-mm-dd'。日期在表格中的格式无关紧要(只要 Google 表格识别这一点),但实际公式必须仅包含此格式的日期以进行比较。例如,要查找小于 2017 年 8 月 31 日的所有日期,

=query(A2:B6, "select A where A < date '2017-08-31'")

您可以使用它来找出 Google 无法识别的所有日期: N:N= M:M*1 如果您在帮助列 N 中收到错误,则无法识别这些日期。即使您没有收到错误,Google 表格也可能会错误识别日期。

EDIT Google 表格中日期的语法

【讨论】:

  • 匿名回答很好!我不知道选择语句中必须写有“日期”,否则查询返回空结果。是要指定后面的字符串的数据类型吗?
  • 是的。我们按日期定义字符串。使用日期查询实际上是有问题的。因为Excel/Sheets怎么看日期,SQL怎么看日期。没有today(),但是有now(),以防万一,我在第一个代码中没有说清楚。 ——
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多