核心结论是 excel 中 rank 函数是专门对一组数值进行排名的函数,可以快速算出某个数字在全部数据里面的名次,支持降序也就是数值越大排名越靠前,也支持升序也就是数值越小排名越靠前,很多人做成绩排名 销售额排名的时候都会用到 rank 函数,之所以这个函数使用频率很高,是因为不用手动排序再填写名次,公式可以批量下拉自动生成排名,但是很多新手踩坑,主要是排名区域没有锁定,下拉填充之后引用区域发生偏移,还有不了解同分同名次的规则,掌握基础语法,学会绝对引用,区分升序降序,再理解同分排名的特点,按照选中单元格 输入公式 锁定数据区域 设置排序方式 回车下拉这套流程操作,最终就可以稳定得到整列数据的排名结果。
基础语法说明
rank 函数标准写法是 rank 要排名的数值 全部数据区域 排序方式
一共三个参数
第一个参数 要排名的数值,一般引用当前行单元格,比如 B2,就是计算 B2 这个数字在整个数据组里面的名次。
第二个参数 全部数据区域,就是参与排名的所有数值范围,这个区域必须使用绝对引用,也就是加上美元符号锁定,下拉公式的时候区域不能移动,这是 rank 函数最关键的要点。
第三个参数 排序方式,这个参数可以省略,省略的时候默认是 0,代表降序,数值越大排名越高,如果填写 1,代表升序,数值越小排名越高。
核心规则,rank 函数遇到相同数值的时候,会给出相同名次,同分之后的名次会跳号,比如两个第一名,下一个就是第三名,没有第二名,这个是传统 rank 函数自带特性,和并列之后连续编号的排名不一样。
基础操作步骤
第一步 整理原始数据,把所有需要排名的数值放在连续区域,比如 B2 到 B15,中间不要插入空单元格,空单元格会影响排名结果。
第二步 点击要输出排名的单元格,比如 C2。
第三步 输入等于号,输入 rank,括号里面第一部分选择 B2,逗号之后选中全部数据区域 B2 B15,按 F4 键把区域变成绝对引用 B2 B15,逗号之后可以写 0 或者留空代表降序。
第四步 按回车键,C2 单元格就会显示 B2 数值对应的排名。
第五步 鼠标移动到 C2 单元格右下角,光标变成黑色十字填充柄,向下拖动填充,整列所有数据自动计算排名。
深度使用要点分层讲解
要点一 绝对引用为什么必须设置
如果排名区域不加美元符号锁定,下拉公式的时候,第二个参数的区域会跟着往下偏移,原本是 B2 到 B15,下拉之后变成 B3 到 B16,排名范围就错了,最后计算出来的名次全部错乱,所以使用 excel 中 rank 函数,第二个参数优先用 F4 锁定,这个是新手最高频错误。
要点二 同分排名跳号特性
传统 rank 函数同分同名次,后面名次跳号,如果业务需要同分保持连续名次,也就是两个第一名之后第二名继续保留,传统 rank 函数不能直接实现,需要搭配 countif 函数改写公式,这个属于进阶改造方案。
要点三 文本和空白单元格处理
排名区域里面如果是文字,空白单元格,rank 函数会自动忽略,但是如果区域里面存在错误值,公式会直接返回错误,所以正式排名之前,要清理数据源里面的错误值。
要点四 新版函数 rank avg 和 rank eq
新版 Excel 和 WPS 提供 rank eq 和 rank avg,rank eq 和旧版 rank 函数效果一致,同分同名次跳号,rank avg 遇到同分的时候,会取平均名次,如果业务需要平均排名,就选用 rank avg,旧版 rank 已经逐步被这两个新函数替代,但是大部分表格文件仍然兼容旧版 rank。
要点五 分组别排名
如果需要按班级 部门分组排名,不是全部数据统一排名,可以搭配 if 函数,把 rank 函数放进 if 里面,按组别筛选之后再做组内排名,实现同一组内部单独排名,适合多班级成绩排名,多部门业绩排名场景。
方案对照表
| 项目 | 说明 |
|---|---|
| 参数 0 或者省略 | 降序,数值越大排名越靠前 |
| 参数 1 | 升序,数值越小排名越靠前 |
| 同分规则 | 同名次,后续名次跳号 |
| 区域引用 | 第二个参数必须绝对引用锁定 |
| 新版替代 | rank eq rank avg |
常见错误对照表
| 错误现象 | 原因 | 修正方式 |
|---|---|---|
| 下拉之后排名全部错乱 | 数据区域没有绝对引用 | 选中排名区域按 F4 锁定 |
| 同分之后名次跳号 | rank 函数本身特性 | 需要连续名次就搭配 countif 改写公式 |
| 公式返回错误 | 数据源含有错误值 | 清除错误值重新计算 |
| 排名顺序反过来 | 第三个参数误写为 1 | 改成 0 或者省略参数,恢复降序排名 |
【常见问题】
问题 1 excel 中 rank 函数为什么下拉之后排名不对
回答 1 excel 中 rank 函数下拉排名错乱,绝大多数原因是第二个参数的数据区域没有做绝对引用,excel 中 rank 函数下拉填充的时候区域自动偏移,把 excel 中 rank 函数的数据区域用 F4 锁定之后,排名就可以保持稳定。
问题 2 excel 中 rank 函数同分为什么名次跳号
回答 1 excel 中 rank 函数默认同分同名次,同分之后下一个名次会跳号,这是 excel 中 rank 函数原生规则,如果业务需要连续编号,excel 中 rank 函数本身无法直接实现,需要搭配 countif 函数改造公式。
问题 3 excel 中 rank 函数第三个参数 0 和 1 有什么区别
回答 1 excel 中 rank 函数第三个参数写 0 或者省略,代表降序排名,数值越大名次越靠前,excel 中 rank 函数第三个参数写 1,代表升序排名,数值越小名次越靠前。
问题 4 excel 中 rank 函数可以做分组内部排名吗
回答 1 excel 中 rank 函数本身是对整个选定区域统一排名,excel 中 rank 函数想要实现分组内部排名,需要搭配 if 函数,按组别筛选之后再调用 excel 中 rank 函数计算组内名次。
【免责申明】
本文基于 Microsoft Excel 以及 WPS 表格通用逻辑讲解 excel 中 rank 函数的使用方法介绍,不同版本软件对 rank eq rank avg 支持程度存在差异,旧版本不支持新版函数,本文仅作为学习参考,正式业务排名前请自行核对排名口径,不对业务排名结果承担责任。
