【问题标题】:Google Sheets Query - Sort By Date; Blanks/Null to the bottom谷歌表格查询 - 按日期排序;空白/空到底部
【发布时间】:2018-08-25 03:51:42
【问题描述】:

在 Google 表格中运行查询时遇到问题。数组公式查询的结果是正确的,但用于对结果进行排序的列 (Col1) 由空白/空单元格和日期组成。因此,当按此列排序时,空白/空值首先列在日期之前。是否可以将日期排在第一位并将空白/空单元格推到底部?

按 DESC 排序将不起作用,因为我希望首先列出较早的日期。此外,空白/空单元格也不能完全从结果中排除(例如,它们对应于没有截止日期但仍必须列出的任务)。

我目前使用的公式是:

=ARRAYFORMULA((QUERY({DATA RANGE},"SELECT Col1 WHERE Col2 = X OR Col3 = X ORDER BY Col1 LIMIT 10",0))

似乎有一种简单的方法可以实现这一点,但我在其他论坛中找不到任何关于该主题的内容。任何帮助将不胜感激。

【问题讨论】:

    标签: date null sql-order-by google-sheets-query


    【解决方案1】:

    使用SORT()

    我相信你的例子可以让它像这样工作:

    =SORT(ARRAYFORMULA((QUERY({DATA RANGE},"SELECT Col1 WHERE Col2 = X OR Col3 = X",0)), 1, 1)(未经测试)

    如果您的LIMIT 10 很重要,那么我认为您可以将整个内容包装在另一个查询中并重新添加LIMIT

    图解示例

    需要查询和排序的范围

    公式

    定义省略标题的范围的简单版本:

    =SORT(QUERY(A2:B7, "select *"), 1, 1)

    处理标头的版本:

    ={A1:B1;SORT(QUERY(tabname!A2:B7, "select *"), 1, 1)}

    此版本创建了一个组合标题行和数据行的数组,因此它可以独立于标题对数据行进行排序。

    查询和排序的结果

    配方成分分解

    Array{[range 1]; [range 2]}

    SORT()SORT([range], [column to sort on], [sort ascending - true/false or 1/0)

    Query()QUERY([range], "[query]")

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2018-06-25
      • 2021-11-16
      • 1970-01-01
      相关资源
      最近更新 更多