Google Sheets QUERY函数跨工作表数据全局排序问题求助
Google Sheets 多表汇总后全局按日期排序解决方案
问题原因
你之前尝试排序时用了错误的语法(Sorty By),正确的排序关键字是ORDER BY;另外原公式仅合并数据未指定全局排序规则,所以结果按工作表分组展示。
解决方案
方案1:在QUERY语句内添加排序规则
直接修改原QUERY的查询字符串,加入ORDER BY Col1子句,指定按第1列(日期列)全局排序:
- 升序(早日期在前):
=QUERY({SheetB!A2:N;SheetC!A2:N;SheetD!A4:N;SheetE!A5:N},"select * where Col1 is not null order by Col1 asc",0)
- 降序(晚日期在前,满足你要求的1-1-23排在31-12-2022之前的需求):
=QUERY({SheetB!A2:N;SheetC!A2:N;SheetD!A4:N;SheetE!A5:N},"select * where Col1 is not null order by Col1 desc",0)
方案2:用SORT函数包裹QUERY结果
如果QUERY内排序仍有问题,可将合并后的结果传入SORT函数,指定按第1列排序:
- 降序(晚日期在前):
=SORT(QUERY({SheetB!A2:N;SheetC!A2:N;SheetD!A4:N;SheetE!A5:N},"select * where Col1 is not null",0),1,FALSE)
额外注意事项
如果排序结果不符合预期,检查Col1列的格式是否为日期格式:
- 若为文本格式,需先转换为日期值,可使用
DATEVALUE(Col1)在QUERY内处理,示例:
=QUERY({SheetB!A2:N;SheetC!A2:N;SheetD!A4:N;SheetE!A5:N},"select * where Col1 is not null order by DATEVALUE(Col1) desc",0)
内容的提问来源于stack exchange,提问作者Steffan Ruijsendaal
相关产品推荐
相关产品推荐

