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, 排名对应的行号)

获取对应的名次

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-11-28

Excel表格怎么数据排名?这个视频告诉你!

第2个回答  2020-11-28

excel如何给数据排名,我教你!

第3个回答  2020-11-28
相似回答