EP04. “Rank RANK 函数”
🔒 登录后可标记已读- RANK 函数用来算一个数字在一组数字里排第几名
- 讲降序/升序排名、处理并列名次的 RANK.AVG
- 也讲用命名区域让公式更好读
- 还有 Excel 365/2021 才有的「用 FILTER + SORT 动态列出前 N 名」写法
- 前置知识是绝对引用($)的概念,学完能做出排行榜、成绩排名这类表格
重点内容
适用版本
基础 RANK/RANK.EQ/RANK.AVG 桌面版通用;步骤 5~9 的动态数组前 N 名写法需要 Excel 365 或 Excel 2021。
RANK、RANK.EQ、RANK.AVG 怎么选
| 函数 | 遇到并列名次 | 备注 |
|---|---|---|
| RANK | 给相同名次 | 旧函数 |
| RANK.EQ | 给相同名次 | 功能同 RANK,Excel 2010+ 建议改用这个 |
| RANK.AVG | 给平均名次(如并列 2、3 名都显示 2.5) | 更精确反映并列情况 |
降序排名(数字越大名次越前)
- 选中要显示名次的单元格
- 输入
=RANK(A1,$A$1:$A$9),第三个参数省略或填 0 时是降序,最大的数字排第一名 - 拖动填充手柄往下复制公式时,因为第二参数用了绝对引用
$A$1:$A$9,范围不会跟着跑掉 - RANK 是旧函数,Excel 2010 之后建议改用功能相同的
RANK.EQ
升序排名(数字越小名次越前)
把第三参数设为 1:=RANK(A1,$A$1:$A$9,1),这时候最小的数字会排第一名。
处理并列名次:RANK.AVG
如果列表里有重复数字,RANK 会给它们相同的名次;RANK.AVG 则会返回「平均名次」,例如两个数字并列第 2、3 名,RANK.AVG 会各自返回 2.5。
用命名区域简化公式
把 $A$1:$A$9 定义成一个命名范围(例如叫 Scores),公式可以写成 =RANK(A1,Scores),可读性更好,也不用担心绝对引用符号打错。
Excel 365/2021:动态列出前 N 名
- 在 D2 输入数字 3,表示要看前 3 名
- 用
LARGE函数找出第 3 大的分数,作为筛选门槛 - 用
FILTER函数把达到这个门槛的整行数据筛出来 - 用
SORT函数按第二列排序,-1表示降序、1表示升序 - 把 D2 改成 5,公式会自动变成显示前 5 名,这是动态数组公式,一个公式就能自动溢出(spilling)填满多个单元格
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| RANK | =RANK(number,ref,[order]) | 数字在列表中的排名(旧函数) | =RANK(A1,$A$1:$A$9) |
| RANK.EQ | =RANK.EQ(number,ref,[order]) | 同 RANK,新版建议用这个 | =RANK.EQ(A1,$A$1:$A$9) |
| RANK.AVG | =RANK.AVG(number,ref,[order]) | 并列名次时返回平均名次 | =RANK.AVG(A1,$A$1:$A$9) |
| LARGE | =LARGE(array,k) | 返回第 k 大的数字 | =LARGE(A1:A9,3) |
| FILTER | =FILTER(array,include) | 按条件筛选整行/整列数据 | =FILTER(A1:B9,B1:B9>=D2) |
| SORT | =SORT(array,[sort_index],[sort_order]) | 排序数组 | =SORT(A1:B9,2,-1) |
学完你会
- ✅ 能用 RANK/RANK.EQ 做出降序或升序的排名
- ✅ 能用 RANK.AVG 处理并列名次,得到平均名次
- ✅ 能用 LARGE + FILTER + SORT(Excel 365/2021)动态列出前 N 名
常见错误
- 排名公式的第二参数忘记用绝对引用,往下拖动填充手柄后范围跟着位移,名次全部算错
- 数据里有重复数字时用普通 RANK,误以为名次不会重复,实际上并列的数字会拿到一样的名次
- FILTER/SORT 这类动态数组函数在旧版 Excel(非 365/2021)里不存在,直接套用会报错
Sources
Blog / Website: