如何修改Excel公式实现分组内日期升序排序(类似SQL PARTITION BY)
修改LET函数中排序部分的方案
假设你当前的LET函数结构大致如下:
=LET( 数据源, A:C, 过滤后数据, FILTER(数据源, 数据源[飞机型号]=F1), 排序后数据, SORT(过滤后数据, 2, 1), // 这里是需要修改的c部分 排序后数据 )
要实现按airline升序分组,每组内按date升序排序的效果,直接把排序逻辑改成多条件排序即可,对应SQL中ORDER BY airline ASC, date ASC的逻辑,完美匹配你要的类PARTITION BY分组内排序需求。
修改后的c部分代码:
排序后数据, SORT(过滤后数据, {2, 1}, {1, 1})
代码说明:
{2, 1}:指定排序的列顺序,先按第2列(airline),再按第1列(date){1, 1}:指定每列的排序方向,1代表升序,既保持airline的整体升序顺序,又让每个airline分组内的date按升序排列
如果你习惯用SORTBY函数,也可以写成:
排序后数据, SORTBY(过滤后数据, INDEX(过滤后数据,,2), 1, INDEX(过滤后数据,,1), 1)
两种写法效果完全一致,选你顺手的就行。
内容的提问来源于stack exchange,提问作者Michi
相关产品推荐
相关产品推荐

