【问题标题】:Google Sheets: query to convert column to date and compare to another dateGoogle表格:查询将列转换为日期并与另一个日期进行比较
【发布时间】:2017-09-05 12:47:45
【问题描述】:

我需要将一个文本列与另一个日期进行比较,该列包含一个表示日期的字符串,格式为 dd/mm/yyyy。

范围在另一张纸上。我无法编辑它以将列格式化为日期字段:

我需要这样的东西:

=query(importrange(...); "select A, B WHERE C >= '2017-01-08'")

当然这不起作用,因为只有 Aldo 行是可见的。有什么方法可以在查询函数中将 C 列转换为日期或格式为 yyyy-mm-dd 的字符串,以将其与比较的右侧值进行比较?

【问题讨论】:

    标签: google-sheets google-query-language


    【解决方案1】:

    我知道这已经很晚了,但几年前我遇到了同样的问题并通过执行以下操作解决了它:

    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 函数在一个单元格中创建文本“选择 B、C、E,其中 B=43152”,然后在我的QUERY,像这样:

    Cell B1: =CONCATENATE("select B, C, E where B=", A2)
    
    Cell A5 formula: =QUERY(Sheet!Range, B1)
    

    这对我很有效,我希望它可以帮助其他人,或者至少给别人一个想法。

    【讨论】:

      【解决方案2】:

      繁琐但似乎有效:

      导入(比如 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' ")
      

      【讨论】:

        猜你喜欢
        • 2018-09-08
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多