发布网友 发布时间:2022-02-20 03:57
共2个回答
热心网友 时间:2022-02-20 08:18
excel排名的设置方法:
产品型号:Dell 灵越5000
系统版本:Windows 10
软件版本:Microsoft Office Excel 2020
首先,打开Excel表格,输入你需要的数据,然后选中一个名次的单元格,
在单元格输入公式,=RANK(H2,H&2:H$8,0) 按回车键即可,
然后点击单元格下拉就完成了。
总结:
1.输入好数据
2.输入排名次的公式
3.回车下拉单元格
热心网友 时间:2022-02-20 05:26
如何根据当前数据统计对应的排名,这是实际中经常遇到的需求。本文介绍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, 排名对应的行号)
获取对应的名次