RANK函数默认降序排名且相同值跳名;RANK.EQ+COUNTIF实现并列不跳名;RANK.AVG取平均名次;XMATCH+SORT支持动态升序排名;SUMPRODUCT提供无函数依赖的通用解法。

如果您在Excel中需要对一组数值进行排序并获取其名次,RANK函数是基础且常用的工具。但默认RANK函数在遇到相同数值时会给出相同排名,并跳过后续名次,导致排名不连续。以下是实现标准排名、并列不跳名以及升序排名的多种方法:
一、使用RANK函数实现基本降序排名
RANK函数默认按降序排列(数值越大,名次越靠前),语法为RANK(要排位的数值, 数据区域, 排序方式),其中排序方式为0或省略时表示降序。
1、选中要显示排名的第一个单元格(例如C2)。
2、输入公式:=RANK(B2,$B$2:$B$10,0),其中B2是当前成绩,$B$2:$B$10是整个成绩列的绝对引用区域。
3、按Enter确认,再将该单元格向下填充至对应数据行末尾。
二、用RANK.EQ与COUNTIF组合实现“并列不跳名”排名
RANK.EQ功能等同于RANK(兼容性更高),但本身仍会跳名;结合COUNTIF可统计当前值之前已出现的相同值个数,从而补回被跳过的名次。
1、在C2单元格输入公式:=RANK.EQ(B2,$B$2:$B$10)+COUNTIF($B$2:B2,B2)-1。
2、按Enter确认后,向下拖拽填充柄至C10(假设数据共9行)。
3、此时相同分数将获得相同名次,后续名次紧接其后,例如两个第3名后直接为第4名。
三、使用RANK.AVG处理并列情况取平均名次
RANK.AVG在遇到重复数值时,自动返回这些位置的平均排名,适用于需要数学上平滑处理并列的情形。
1、在D2单元格输入公式:=RANK.AVG(B2,$B:$B)。
2、按Enter确认,再向下填充至D10。
3、若B4和B7均为85分且在原始序列中分别排第4、第5位,则二者均显示4.5。
四、用SORT与SEQUENCE构造动态升序排名(Office 365/Excel 2021)
当需按升序排名(数值越小名次越靠前),且希望结果独立于原数据顺序时,可借助动态数组函数构建新排名列。
1、在E2单元格输入公式:=XMATCH(B2,SORT($B$2:$B$10,1,1))。
2、该公式先将成绩列升序排列,再查找当前B2值在排序后数组中的首次位置,即为其升序名次。
3、无需拖拽,公式自动溢出覆盖E2:E10区域。
五、用SUMPRODUCT实现无函数依赖的通用排名公式
SUMPRODUCT可绕过RANK系列函数限制,支持任意条件与排序方向,且兼容所有Excel版本,不依赖动态数组。
1、在F2单元格输入降序排名公式:=SUMPRODUCT(($B$2:$B$10>B2)/COUNTIF($B$2:$B$10,$B$2:$B$10))+1。
2、在G2单元格输入升序排名公式:=SUMPRODUCT(($B$2:$B$10
3、两个公式均自动处理重复值:相同数值获得相同名次,且不跳号。











