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)

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

免费下载试用

相关推荐
我命由我1234512 小时前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea
HLJ洛神千羽12 小时前
C++程序设计实验(黑龙江大学)
开发语言·c++·软件工程
kyle~12 小时前
算法数学---差分数组(Difference Array)
java·开发语言·算法
曹牧12 小时前
C#:三元运算符
开发语言·c#
Jonathan Star13 小时前
MediaPipe 在Python中实现人体运动识别,最常用且高效的方案是结合**姿态估计**(提取人体关键点)和**动作分类**(识别具体运动)
开发语言·python·分类
滨HI013 小时前
C++ opencv拟合直线
开发语言·c++·opencv
沐浴露z13 小时前
详解JDK21新特性【虚拟线程】
java·开发语言·jvm
艾莉丝努力练剑13 小时前
【C++:红黑树】深入理解红黑树的平衡之道:从原理、变色、旋转到完整实现代码
大数据·开发语言·c++·人工智能·红黑树
l1t13 小时前
利用DeepSeek优化SQLite求解数独SQL用于DuckDB
开发语言·数据库·sql·sqlite·duckdb
_OP_CHEN13 小时前
C++进阶:(七)红黑树深度解析与 C++ 实现
开发语言·数据结构·c++·stl·红黑树·红黑树的旋转·红黑树的平衡调整