rank 函数核心作用就是给一组数值计算排名,现在大家常接触的主要是 Excel 版本 rank 函数还有 pandas 里面的 rank 方法,两种写法原理一致但是语法参数有区别,Excel 的 rank 是工作表函数,用来在单元格区域里面计算数值的名次,pandas 的 rank 是 Series 或者 DataFrame 对象方法,适合批量数据分析,rank 最关键的设置就是升降序还有并列数值的排名规则,很多人使用出错都是没有搞懂并列排名处理方式,还有区域引用没有加绝对引用,下拉填充之后选区偏移,最终排名结果错乱,rank 函数输出的是名次序号,不会修改原始数值,它只是计算出每个数字在整组数据里面的排位,既可以从高到低降序排名,也可以从小到大升序排名,日常成绩排名 销售业绩排名 竞赛分数排位都会用到这个函数,学习 rank 函数要分开 Excel 和 pandas 两套用法,理解每个参数含义,掌握下拉填充 并列排名 空值处理这些高频场景。
Excel rank 函数基础语法
旧版 Excel 函数 rank (number ref order)
number 要计算排名的那个数值单元格
ref 参与排名的全部数据区域
order 排序方式,填 0 或者省略代表降序,数值越大排名越靠前,填 1 代表升序,数值越小排名越靠前
新版 Excel 推荐使用 RANK.EQ,旧版 rank 已经属于兼容函数,RANK.EQ 和旧 rank 逻辑基本一致,并列数值会占用相同名次,下一名次会跳号
pandas rank 方法基础语法
对象.rank (method ascending na_option)
method 并列排名处理规则
ascending True 升序 False 降序
na_option 空值处理 top bottom keep
核心参数表格
| 参数 | Excel rank | pandas rank |
|---|---|---|
| 排序方向 | order 0 降序 1 升序 | ascending False 降序 True 升序 |
| 并列规则 | 并列同名次,后续名次跳号 | 支持 average min max first dense 多种规则 |
| 空值 | 默认忽略空值 | 可以设置空值排最前最后或者保留 |
| 引用方式 | 单元格区域,下拉需要绝对引用 | 直接传入列数据,不需要选区引用 |
详细使用步骤
第一步 区分使用环境,如果是表格办公就用 Excel rank,如果是 python 数据分析就用 pandas rank
第二步 Excel 场景,选中结果单元格,输入 rank 函数,number 选择待排名单元格,ref 选中全部数据区域,把 ref 改成绝对引用,比如 A2:A10 改成 $A$2:$A$10,order 按需填写
第三步 下拉填充公式,所有行批量生成排名,检查并列数值,确认名次是否符合预期
第四步 pandas 场景,读取数据之后,对目标列调用 rank,设置 method 和 ascending 参数,生成新的排名列
第五步 核对结果,如果并列排名不符合需求,调整 method 参数,average 是并列取平均名次,min 是并列取最小名次,dense 是紧凑排名不跳号
第六步 处理异常,空值 文本型数字会造成 rank 计算报错,提前清洗数据,把文本数字转为数值格式
深度补充要点
Excel 旧 rank 函数和 RANK.EQ 行为几乎一样,并列的时候两个相同分数都是第 1 名,下一个分数直接变成第 3 名,中间跳过第 2 名,这个是很多用户觉得奇怪的地方,如果想要并列之后下一名是第 2 名,Excel 原生 rank 做不到,需要换其他公式,pandas rank 的 dense 模式就可以实现这种紧凑排名。
Excel 里面 ref 区域如果没有加绝对引用,下拉公式的时候选区会跟着下移,排名计算范围就错了,属于 rank 函数最高频错误。
pandas rank 返回的名次可以是小数,比如 average 模式下两个并列第一名名次是 1.5,这点和 Excel rank 整数名次不一样,做后续筛选计算的时候要留意。
【常见问题】
问题 1 rank 函数要怎么用,为什么下拉之后排名全部出错
回答 1 rank 函数要怎么用,下拉排名出错大多是排名区域没有加绝对引用,公式下拉的时候选区自动偏移,把排名区域改成 $ 符号锁定的绝对引用就能修复。
问题 2 rank 函数要怎么用,相同分数排名之后下一名为什么跳号
回答 2 rank 函数要怎么用,Excel 旧 rank 和 RANK.EQ 遇到相同分数会共用同一个名次,下一名次直接跳号,pandas rank 如果使用 dense 参数就不会跳号。
问题 3 rank 函数要怎么用,pandas rank 和 Excel rank 并列排名逻辑一样吗
回答 3 rank 函数要怎么用,二者并列逻辑不完全一样,Excel rank 固定是并列同名次跳号,pandas rank 可以切换多种并列规则,支持平均名次 最小名次 紧凑排名等模式。
【免责申明】
本文 rank 函数要怎么用属于办公表格与数据分析科普,不同 Excel 版本和 pandas 版本函数细节会有差异,实际使用请参考软件官方说明,内容仅供学习参考。


