Google 工作表:查询以将列转换为日期并与另一个日期进行比较
Google Sheets: query to convert column to date and compare to another date
我需要比较一个文本列,其中包含一个表示 dd/mm/yyyy 格式日期的字符串与另一个日期。
范围在另一个sheet。我无法编辑它以将列格式化为日期字段:
我需要这样的东西:
=query(importrange(...); "select A, B WHERE C >= '2017-01-08'")
当然这不起作用,因为只有 Aldo 行可见。有什么方法可以在查询函数中将列 C 转换为日期或格式为 yyyy-mm-dd 的字符串,以便将其与比较的右侧值进行比较?
麻烦但似乎有效:
导入(比如 Sheet1!A1):
=importrange(" k e y ","Sheet1!A:C")
添加具有可识别日期格式的列(例如在 D1 中):
=ArrayFormula(datevalue(C1:C))
然后应用查询:
=query(Sheet1!A:D,"select A,B,C where D >= date '2017-01-08' ")
我知道这已经晚了,但我 运行 几年前遇到过同样的问题,并通过执行以下操作修复了它:
Cell A1 contains: 2/21/2018
Cell A2 contains: =DATEVALUE(B1)
结果为 43152,我将其复制到 QUERY 语句中:
Cell A5 formula: =QUERY(Sheet!Range, "select B, C, E where B=43152")
但是,为了通过只输入日期让它变得更好,我使用 CONCATENATE 函数在一个单元格中创建文本 "select B, C, E where B=43152",然后在我的 QUERY 中引用该单元格,如下所示:
Cell B1: =CONCATENATE("select B, C, E where B=", A2)
Cell A5 formula: =QUERY(Sheet!Range, B1)
这对我来说效果很好,我希望它能帮助别人或至少给别人一个想法。
我需要比较一个文本列,其中包含一个表示 dd/mm/yyyy 格式日期的字符串与另一个日期。
范围在另一个sheet。我无法编辑它以将列格式化为日期字段:
我需要这样的东西:
=query(importrange(...); "select A, B WHERE C >= '2017-01-08'")
当然这不起作用,因为只有 Aldo 行可见。有什么方法可以在查询函数中将列 C 转换为日期或格式为 yyyy-mm-dd 的字符串,以便将其与比较的右侧值进行比较?
麻烦但似乎有效:
导入(比如 Sheet1!A1):
=importrange(" k e y ","Sheet1!A:C")
添加具有可识别日期格式的列(例如在 D1 中):
=ArrayFormula(datevalue(C1:C))
然后应用查询:
=query(Sheet1!A:D,"select A,B,C where D >= date '2017-01-08' ")
我知道这已经晚了,但我 运行 几年前遇到过同样的问题,并通过执行以下操作修复了它:
Cell A1 contains: 2/21/2018
Cell A2 contains: =DATEVALUE(B1)
结果为 43152,我将其复制到 QUERY 语句中:
Cell A5 formula: =QUERY(Sheet!Range, "select B, C, E where B=43152")
但是,为了通过只输入日期让它变得更好,我使用 CONCATENATE 函数在一个单元格中创建文本 "select B, C, E where B=43152",然后在我的 QUERY 中引用该单元格,如下所示:
Cell B1: =CONCATENATE("select B, C, E where B=", A2)
Cell A5 formula: =QUERY(Sheet!Range, B1)
这对我来说效果很好,我希望它能帮助别人或至少给别人一个想法。