打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel中如何实现排名统计

本文转载自公众号:Excel表哥之家,作者:表哥大。

如何根据当前数据统计对应的排名,这是实际中经常遇到的需求。本文介绍Excel中排名统计的基本需求,以及分组排名、多维度权重综合排名等复杂排名需求的实现方法。

以下根据学员分数排名,名次显示在C列:

名次统计公式如下:

C2单元格公式如下:

=RANK(B2,$B$2:$B$13,0)

拖动C2公式拓展到C13单元格完成名次统计公式输入。

RANK函数语法:

函数语法:

RANK(number,ref,[order]) 

函数作用:

获得数据对应的排名

参数说明:

number:需要统计排名次的数字;

ref:数字数组或数字单元格区域引用,其中非数值型参数将被忽略;

order:排位方式,0或忽略按降序排列(即常规说的正数排名),非0按升序排列(即常规说的倒数排名);

可用以下方法实现类似Rank的排名统计:

=COUNTIF($B$2:$B$13,'>='&B2)

=SUMPRODUCT(($B$2:$B$13>=B2)*1)

需要特别注意的是,RANK函数排名有个问题,虽然对重复数字排名相同,但重复数对后续数字排名有影响。譬如:如下两个54分,并列排名第八,53分排名第十,却跳过了第九,这不符合中国式排名要求。

按照中国式排名要求,解决方案:

C2单元格公式改进如下:

=SUMPRODUCT(($B$2:$B$13>=B2)/COUNTIF($B$2:$B$13,$B$2:$B$13))

公式解释:

($B$2:$B$13>=B2)

统计大于等于当前分数的个数,包含重复数

/COUNTIF($B$2:$B$13,$B$2:$B$13)

除以与当前分数相同的个数,确保相同分数并列排名,且只统计一次

SUMPRODUCT

把符合上述条件的个数求和

公式改进后效果如下:

复杂排名需求应用示例:

按照上述改进思路,可以满足复杂的排名场景要求,示例如下:

【1】分组或分类排名

在上述数据基础上增加班级列,按班级排名如下:

D2单元格公式如下:

=SUMPRODUCT(($A$2:$A$13=A2)*($C$2:$C$13>=C2)/COUNTIFS($A$2:$A$13,$A$2:$A$13,$C$2:$C$13,$C$2:$C$13))

公式解释:

($A$2:$A$13=A2)*($C$2:$C$13>=C2)

统计本班级大于等于当前分数的个数,包含重复数

/COUNTIFS($A$2:$A$13,$A$2:$A$13,$C$2:$C$13,$C$2:$C$13)

除以本班级与当前分数相同的个数,确保相同分数并列排名,且只统计一次

SUMPRODUCT

把符合上述条件的个数求和

【2】多维度综合权重排名

按语文、数学、英语三科权重:40%、40%、20%综合排名

E2单元格公式如下:

=SUMPRODUCT(N(($B$2:$B$13*40% $C$2:$C$13*40% $D$2:$D$13*20%)>=(B2*40% C2*40% D2*20%)))

N函数作用:把比较结果TRUE返回1,FALSE返回0

N函数介绍:

语法:N(value)

用途:转化为数值返回。可以转化的值:数字返回该数字,日期返回该日期的序列号,TRUE返回1,FALSE返回0,错误值(如#DIV/0!)返回该错误值,其他值返回0。

参数:value为要转化的值。  

根据名次显示排名示例:

要求E\F\G按名次先后排列,显示如下:

列公式:

E2输入以下数组公式,按<Ctrl Shift Enter>,将公式填充至E2:F13区域

{=INDEX($A:$A,MOD(LARGE($B$2:$B$13*100 ROW($B$2:$B$13),ROW(A1)),100))}

F列公式:

{=INDEX($B:$B,MOD(LARGE($B$2:$B$13*100 ROW($B$2:$B$13),ROW(A1)),100))}

G列公式:

{=INDEX($C:$C,MOD(LARGE($B$2:$B$13*100 ROW($B$2:$B$13),ROW(A1)),100))}

公式解释:

$B$2:$B$13*100

分数乘以100,确保不影响分数排序

$B$2:$B$13*100 ROW($B$2:$B$13)

加上当前行号,方便取得排名对应的行号

MOD(LARGE($B$2:$B$13*100 ROW($B$2:$B$13),ROW(A1)),100)

MOD函数去掉上面乘的100,获取排名对应的行号

INDEX($A:$A, 排名对应的行号)

获取对应的姓名

INDEX($B:$B, 排名对应的行号)

获取对应的分数

INDEX($C:$C, 排名对应的行号)

获取对应的名次

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
筛选出每个人最高分的记录(一)
Excel隔N行求和,你是不是在找这条公式模板?收藏备用
Excel教程:excel添加序号,10000个序号,只需2秒!
ROW函数的用途
高手才会的excel乾坤大挪移,新手别来了
11个职场人最常用的Excel函数公式,你一定要学会!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服