Google表格查询 - 按日期排序;空白/空底部SORT()

问题描述 投票:1回答:1

在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个回答
0
投票

Use SORT()

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

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

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

Illustrated Example

需要查询和排序的范围

enter image description here

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

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

处理标题的版本:

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

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

查询和排序结果

enter image description here

配方成分的细分

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.