用rank函数计算成绩排名老是错误(没法用怎么办)

首页常识更新时间:2023-05-08 22:42:38

rank是一个排名函数,如下图所示,这是一个成绩按降序排列的成绩单,在C2单元格输入=RANK(B2,$B$2:$B$20)得到降序排名。

表中有多个成绩并列,rank在处理排名的时候存在“占用名次”,比如两个99分并列第一,结果把第二名占用了,95分变成了第三名,两个95分并列第三又占用了第四名,94分变成了第五名,这显然不符合我们的排名方式,中国式排名应该如下图所示:

那如何通过函数得出中国式排名呢?如下图所示,在c2单元格输入=SUMPRODUCT(($B$2:$B$20>=B2)/COUNTIF($B$2:$B$20,$B$2:$B$20)),然后向下填充。

那这个公式是如何求得中国式排名的呢?大致可以分为三步

第一步:($B$2:$B$20>=B2),这里是判断所有的成绩有多少个大于或等于B2单元格的,现在B2单元格的值是99,满足条件为true,不满足条件为false,true转化成1和false转化为0,这部分公式会得到一个数组。

第二步:后半部分公式COUNTIF($B$2:$B$20,$B$2:$B$20) countif是一个计数函数,第一和第二参数都选择B2:B20,意思是每一个成绩一共出现过几次,比如第一个成绩99出现了两次,数组的第一个数字就会是2,第二个成绩99出现过两次,数组第二个数字也会是2,以此类推,会得到如下图这样的数组

第三步:用第一个数组除以第二个数组($B$2:$B$20>=B2)/COUNTIF($B$2:$B$20,$B$2:$B$20)会得到第三个数组,下图中红框区域

然后用SUMPRODUCT对这个数组进行求和最终得到1,第二个成绩99也会通过这组公式求和得1,接着第三个成绩95,运算步骤如下,求和得到2,以此类推,不断向下判断。

现在知道为什么要除以COUNTIF($B$2:$B$20,$B$2:$B$20)这个部分了吧,因为无论成绩出现过几次,都会被1除,得到的值求和在一起也只会占用一个名次。

好了,中国式排名就分享到这里,一定要在Excel上输入这组公式测试一下哦。

关注我,查看更多视频讲解。

,
展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.