MICROSOFT

EP04. “Rank RANK 函数”

首页 Microsoft 工具 Excel · Functions · Statistical · EP04
约 5 分钟· #EP04#Excel#Statistical
🔒 登录后可标记已读
  • 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)更精确反映并列情况

降序排名(数字越大名次越前)

  1. 选中要显示名次的单元格
  2. 输入 =RANK(A1,$A$1:$A$9),第三个参数省略或填 0 时是降序,最大的数字排第一名
  3. 拖动填充手柄往下复制公式时,因为第二参数用了绝对引用 $A$1:$A$9,范围不会跟着跑掉
  4. 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 名

  1. 在 D2 输入数字 3,表示要看前 3 名
  2. LARGE 函数找出第 3 大的分数,作为筛选门槛
  3. FILTER 函数把达到这个门槛的整行数据筛出来
  4. SORT 函数按第二列排序,-1 表示降序、1 表示升序
  5. 把 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:

  1. Rank