如何通过谷歌表格上的查询将日期或日期与今天进行比较?



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

我想做的是过滤 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)

查询中没有 today((。请改用now()

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

或者,如果您想在没有time的情况下now()(相当于TODAY()(,请使用:

todate(now())

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

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

您可以使用它来计算所有日期,Google无法识别:N1:

M:M*1

如果在帮助程序列 N 中出现错误,则无法识别这些日期。即使您没有收到错误,Google 表格也可能错误地识别了日期。还有一个更具体的功能:

=ARRAYFORMULA(ISDATE(M:M))

引用:

  • 标量函数

相关内容

  • 没有找到相关文章

最新更新