excel 成绩排名最主流的做法是使用 RANK 函数,也可以根据业务需求选择 RANK.EQ RANK.AVG,还可以配合排序功能或者 SUMPRODUCT 实现同分不同名次的自定义排名,RANK 函数的核心逻辑就是把当前学生成绩,和全部成绩区域做对比,计算这个成绩在整组数据里面所处的位次,分数越高名次越靠前,日常班级考试总分单科排名绝大多数场景直接用 RANK 就可以完成,这个方法的优势是原始成绩改动之后,排名会自动刷新,不需要每次手动重新排序,适合经常更新分数的成绩表,需要区分两种排名规则,一种是同分同名次,下一名次跳号,比如两个人都是第一名,下一个就是第三名,RANK 默认就是这种规则,另一种是同分也要分配连续不跳号名次,这个就不能直接用 RANK,需要换 SUMPRODUCT 公式实现,同时还要注意排名区域必须做绝对引用锁定,下拉填充公式的时候,成绩区域不能自动偏移,否则排名结果全部错乱,这也是新手做 excel 成绩排名最容易出错的地方。
一 核心函数 RANK
语法:=RANK (要排名的成绩,全部成绩区域,排序方式)
排序方式填 0 代表降序,分数越高名次越靠前,考试排名默认填 0,填 1 是升序,分数越低名次越靠前,很少用于考试成绩
示例:A 列是学生姓名,B 列是成绩,在 C2 单元格输入公式
=RANK (B2,$B$2:$B$50,0)
输入完成回车,然后下拉填充,就可以批量生成所有学生成绩排名
| 函数 | 特点 | 适用场景 |
|---|---|---|
| RANK | 旧版兼容函数,同分同名次,后续名次跳号 | 普通班级考试排名 |
| RANK.EQ | 新版正式函数,逻辑和 RANK 完全一致,同分同名次跳号 | 新版 excel 推荐写法 |
| RANK.AVG | 同分的时候取平均名次,比如两个第 1 名,名次显示 1.5 | 需要平均名次特殊统计 |
二 同分不跳号排名 SUMPRODUCT
RANK 遇到同分就会跳名次,如果学校要求同分也要连续编号,第一名第二名第三名不跳号,就使用 SUMPRODUCT 公式
示例公式:=SUMPRODUCT (($B$2:$B$50>B2)/COUNTIF ($B$2:$B$50,$B$2:$B$50))+1
原理是统计比当前成绩高的人数,再加 1 得到名次,同分学生名次保持连续,不会跳过名次序号
三 手动排序方式(不自动更新)
如果不需要公式自动计算,只是临时把表格按照成绩从高到低排列,可以使用 excel 自带排序功能
操作步骤
第一步 选中整张成绩表,包含姓名成绩所有列,不能只选中成绩单列,否则姓名和成绩会错位
第二步 顶部菜单栏点击数据,选择排序
第三步 主要关键字选择成绩那一列,次序选择降序
第四步 点击确定,表格就会按照成绩从高到低重新排列
注意 这种是物理重排单元格位置,原始顺序被改变,成绩修改之后不会自动更新名次,适合一次性整理打印成绩单
四 多条件成绩排名
如果需要先按总分排名,总分相同再按语文分数排名,也就是双条件排名,使用 SUMPRODUCT 公式
示例:=SUMPRODUCT (($C$2:$C$50>C2)+($C$2:$C$50=C2)($B$2:$B$50>B2))+1
逻辑是总分高于当前成绩的全部算高名次,总分相等的情况下,语文分数更高才算排在前面,适合中考高考这类多科目综合排名
五 详细操作步骤
第一步 整理成绩表,确保每一行是一名学生,姓名科目成绩放在连续单元格,不要有空行
第二步 在名次列第一个单元格输入等号,写 RANK 函数
第三步 第二个参数也就是全部成绩区域,选中之后按 F4 添加美元符号,变成绝对引用 $B$2:$B$50
第四步 第三个参数填写 0,代表高分在前,回车得到第一个学生名次
第五步 鼠标移动单元格右下角,光标变成黑色十字填充柄,下拉填充整列
第六步 检查结果,如果出现名次全部相同或者全部错乱,检查绝对引用有没有锁定,成绩区域里面是否混入文本空格
六 常见踩坑点
1 没有锁定成绩区域,下拉填充之后区域变成 B3:B51 B4:B52,排名计算范围发生偏移
2 成绩单元格里面存在空格,单元格格式是文本,数值无法正常参与排名计算
3 只选中成绩列排序,没有选中整行,姓名和成绩错位,成绩单错乱
4 不清楚 RANK 默认同分跳号,学校要求连续名次仍然继续使用 RANK,导致名次不符合要求
【常见问题】
问题 1 excel 成绩排名使用 RANK 函数同分为什么会跳名次
回答 1 excel 成绩排名里面 RANK 函数默认规则是同分同名次,两个学生并列第一名之后,下一名学生直接显示第三名,会跳过第二名,如果 excel 成绩排名要求同分之后名次连续不跳号,就要改用 SUMPRODUCT 公式实现连续排名。
问题 2 excel 成绩排名下拉之后名次全部一样是什么原因
回答 2 excel 成绩排名下拉之后名次全部一样,绝大多数情况是成绩区域没有做绝对引用锁定,或者反过来全部参数错误,正确写法是 RANK 第二个参数全部成绩区域添加美元符号锁定,下拉填充的时候对比范围保持不变,excel 成绩排名才能逐行正常计算。
问题 3 excel 成绩排名 RANK 和 RANK.EQ 有什么区别
回答 3 excel 成绩排名里面 RANK 是早期兼容函数,RANK.EQ 是新版 excel 正式命名函数,两者运算逻辑完全相同,都是同分同名次并且后续名次跳号,新版 excel 推荐写 RANK.EQ,旧版本 excel 也仍然可以识别 RANK,做 excel 成绩排名两个都可以使用。
问题 4 excel 成绩排名可以先总分相同再按单科排名吗
回答 4 excel 成绩排名支持多条件排名,单纯 RANK 函数只能按单一分数排名,无法处理总分相同再对比单科的规则,需要使用 SUMPRODUCT 组合公式,把总分比较和单科比较叠加,实现 excel 成绩排名的多条件优先级排序。
【免责申明】
本文内容仅为 excel 成绩排名教学参考,不同 excel 版本函数兼容情况存在差异,SUMPRODUCT 多条件公式需要根据实际表格列位置修改参数,排名规则请以学校或者单位要求为准,公式运算结果受单元格格式和数据内容影响,正式使用前请核对名次,本文不承担排名错误带来的相关责任。


