在Excel中,对一列数字进行降序排名(数值大的排名靠前),并允许重复数字具有相同排名(中国式排名),可以使用 RANK.EQ
、RANK.AVG
或 SUMPRODUCT
函数。以下是不同方法的详细说明及示例:
方法1:RANK.EQ
函数(相同数字排名相同,后续排名跳过)
函数语法
=RANK.EQ(数字, 数字区域, [排序方式])
-
数字
:要排名的单元格(如A2
)。 -
数字区域
:所有要排名的数据范围(如$A$2:$A$10
)。 -
[排序方式]
:-
0
或省略 → 降序(数值越大,排名越靠前)。 -
1
→ 升序(数值越小,排名越靠前)。
-
示例
假设数据在 A2:A10
,在 B2
输入公式并下拉:
=RANK.EQ(A2, $A$2:$A$10, 0)
效果:
数值 | 排名(RANK.EQ) | |
---|---|---|
100 | 1 | |
95 | 2 | |
95 | 2 | |
80 | 4 | ← 注意:跳过了排名3 |
70 | 5 |
缺点:如果有重复数字,后续排名会跳过(如两个
95
并列第2,下一个80
直接变成第4)。
方法2:RANK.AVG
函数(相同数字取平均排名)
函数语法
=RANK.AVG(数字, 数字区域, [排序方式])
-
与
RANK.EQ
类似,但重复数字的排名取平均值(如两个95
并列第2.5)。
示例
=RANK.AVG(A2, $A$2:$A$10, 0)
效果:
数值 | 排名(RANK.AVG) | |
---|---|---|
100 | 1 | |
95 | 2.5 | ← 两个95的平均排名 (2+3)/2=2.5 |
95 | 2.5 | |
80 | 4 | |
70 | 5 |
适用场景:需要更精确的排名统计(如学术评分)。
方法3:SUMPRODUCT
函数(中国式排名,不跳过名次)
如果希望重复数字排名相同,且后续排名不跳过(如两个 95
并列第2,下一个 80
仍为第3),可以使用 SUMPRODUCT
公式:
公式
=SUMPRODUCT(($A$2:$A$10>A2)/COUNTIF($A$2:$A$10, $A$2:$A$10)) + 1
逻辑:
-
($A$2:$A$10 > A2)
→ 统计比当前数字大的单元格数量。 -
/COUNTIF(...)
→ 对重复数字进行加权处理,避免重复计算。 -
+1
→ 排名从1开始。
示例
=SUMPRODUCT(($A$2:$A$10>A2)/COUNTIF($A$2:$A$10, $A$2:$A$10)) + 1
效果:
数值 | 排名(SUMPRODUCT) | |
---|---|---|
100 | 1 | |
95 | 2 | |
95 | 2 | |
80 | 3 | ← 不跳排名 |
70 | 4 |
优点:符合中国式排名习惯,重复数字不跳过后续名次。
总结
函数 | 语法示例 | 特点 | 适用场景 |
---|---|---|---|
RANK.EQ | =RANK.EQ(A2, $A$2:$A$10, 0) |
相同数字排名相同,后续排名跳过 | 一般排名(美式排名) |
RANK.AVG | =RANK.AVG(A2, $A$2:$A$10, 0) |
相同数字取平均排名(如2.5) | 学术评分、精确排名 |
SUMPRODUCT | =SUMPRODUCT(($A$2:$A$10>A2)/COUNTIF(...)) + 1 |
中国式排名,不跳名次 | 符合国内习惯的排名 |
推荐:
-
默认情况 → 用
RANK.EQ
。 -
需要不跳名次 → 用
SUMPRODUCT
公式。 -
需要平均排名 → 用
RANK.AVG
。

欢迎关注
喜欢本网站,就扫一扫,关注微信公众号,有惊喜哦~
评论