*Excel 保持原序时计算组内排名

Excel某表格第1列是分组,第2列是日期,未排序。


A B
1 Agent ID Date of Sale
2 Agent1 07-12-2023
3 Agent1 05-12-2023
4 Agent2 09-12-2023
5 Agent3 13-12-2023
6 Agent2 14-12-2023
7 Agent2 22-12-2023
8 Agent1 15-12-2023
9 Agent1 17-12-2023
10 Agent2 13-12-2023
11 Agent1 20-12-2023
12 Agent1 18-12-2023
13 Agent3 20-12-2023
14 Agent3 09-12-2023

要求在保持原序的情况下,算出每组数据的内部排名,写在第3列:


A B C
1 Agent ID Date of Sale result
2 Agent1 07-12-2023 2
3 Agent1 05-12-2023 1
4 Agent2 09-12-2023 1
5 Agent3 13-12-2023 2
6 Agent2 14-12-2023 3
7 Agent2 22-12-2023 4
8 Agent1 15-12-2023 3
9 Agent1 17-12-2023 4
10 Agent2 13-12-2023 2
11 Agent1 20-12-2023 6
12 Agent1 18-12-2023 5
13 Agent3 20-12-2023 3
14 Agent3 09-12-2023 1

使用 SPL XLL

=spl("=E(?).derive(#:id,rk).sort(#1,#2).run(rk=rank(#2;#1)).sort(id).(rk)",A1:B14)

Picture1png

函数 E 将片区转为表格,derive 增加新列,rank 计算排序后的组内记录的排名,# 是行号,#1 是第 1 列。

来源:https://stackoverflow.com/questions/78109251/how-to-create-a-sequence-number-based-on-sales-agent-name-and-sale-date-in-excel