Rank函数不能做中国式排名,两个并列第一就没第二名了,怎么办?

您所在的位置:网站首页 excel排名公式rank怎么用 Rank函数不能做中国式排名,两个并列第一就没第二名了,怎么办?

Rank函数不能做中国式排名,两个并列第一就没第二名了,怎么办?

2023-06-06 21:32| 来源: 网络整理| 查看: 265

rank排名会占用名次

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

第二名被占用

表中有多个成绩并列,rank在处理排名的时候存在“占用名次”,比如两个99分并列第一,结果把第二名占用了,95分变成了第三名,两个95分并列第三又占用了第四名,94分变成了第五名,如下图所示

“中国式”排名

这显然不符合我们的排名方式,“中国式”排名一定要分出1、2、3名,设想一下如果你是第二名,结果你上面两个并列第一把你变成了第三名你怎么想?哈哈,开个玩笑。

那有没有办法做“中国式”排名?有的,但是没有直接的函数,不像rank用起来这么简单,如下图所示,在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上输入这组公式测试一下哦。

如果这篇文章能帮助到你,请帮忙点赞、收藏、转发。

关注我,获取更多Excel实用技巧。

举报/反馈


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3