rank函数降序排名教程 使用Excel如何实现“中国式”排名?

[更新]
·
·
分类:行业
1316 阅读

rank函数降序排名教程

使用Excel如何实现“中国式”排名?

使用Excel如何实现“中国式”排名?

Excel中的rank进行的排名,是普通的排名,那怎么才能快速实现中国式排名呢(就是并列不占名次)?

排名的本质是什么呢?排名就是一个数字在一组数字中从大到小或者从小到大中的位置。西方的排名方式与中国的排名的方式大体相同,但却也有一处非常明显的差别。那就是对于并列名次后的处理。如下图所示:
如果数据不重复的情况的下,不管中国式排名还是西方式排名,都是一样的,用rank函数即可搞定。
以上图为例公式即为:
RANK(B2,$B$2:$B$17)
然而中国式排名显然用这个公式就不合适了,那么该如何做呢?
1.排名都是拿某个数字跟包含这个数字的一组数字比较大小,看看这一组数字大于等于(或者小于等于)这个的数字有多少个,有第一个就是排名第1,有2个就是排名第二……,rank函数也是这个逻辑。根据这个逻辑我们暂时得到以下的公式:
$B$2:$B$17gtB2分别拿$B$2:$B$17区域中的每个数字与B2的值进行比较,如果其中有数字大于等于B2,则返回TRUE,否则返回FALSE。这时我们在此公式的前面加两个负号即可将其转换为1和0.
--($B$2:$B$17gtB2)当$B$2:$B$17中有重复数字时,我们得到至少两个重复的逻辑值。
2.然后我们通过countif函数求出这一组数字中每个数字的个数。如下图所示,我们利用countif函数可以办到这一点:
{COUNTIF(B2:B17,B2:B17)}
非重复数字为1,重复数字则是有多少个相同数字,则得出同样的个数。我们用1去除这个结果,然后外层嵌套一个sum函数即可得到这一串数字中的不重复数字的个数:
{SUM(1/COUNTIF(B2:B17,B2:B17))}
3.我们将1和2的公式整合在一起就可以得到每个值的中国式排名了。
{SUM(--($B$2:$B$17gtB2)/COUNTIF($B$2:$B$17,$B$2:$B$17))}由于公式需要向下复制,因此要实用绝对引用。

2个办法:
1个是公式SUMPRODUCT(($B$2:$B$5gtB2)*(MATCH($B$2:$B$5,$B$2:$B$5,0)ROW($1:$4)))
如果你不愿记这么长的公式,那么下图是第二个办法

如何递减?递减顺序排名(利用rank函数)?

操作步骤:单击“学生成绩表”,再单击名次列的n3单元格,输入公式:rank(m3,m$3:m$34,0),然后移动光标到该单元格的右下角,当鼠标变成实心十字符号时,双击鼠标。
说明:m3是参与排序的数值,m$3:m$34为参与排序的整个数值列表,0为降序排序方式(1为升序)。
在公式编辑栏中选中公式,单击f4功能键,可以实现单元格地址相对引用、绝对引用、混合引用之间的相互转换。