从美国式到中国式的排名次_Excel公式教程

标签:
excel公式教程中国式排名次rank函数 |
分类: Excel公式教程-函数篇 |
【导读】
排名次有三种方式:美国式排名、平均值排名和中国式排名。本文介绍这三种方式的区别,以及实现排名的公式,并重点对中国式排名的公式进行讲解。
一、三种排名次方式的区别
二、美国式排名公式
三、平均值排名公式
四、中国式排名公式
对一列数字值进行排名次,当出现重复值的时候,有三种排名次的方式。
一、三种排名次方式的区别
http://s4/bmiddle/0067PPKnzy7muIpoJkD83&690
上图分别为三种排名次方式——美国式排名、平均值排名和中国式排名的结果,它们的主要区别在于:
1、美国式排名与中国式排名的区别在于,当出现并列名次时,美国式排名会出现名次断档,而中国式名次则是连续的。
2、平均值排名对并列名次取其平均值。
二、美国式排名公式
美国式排名用RANK或RANK.EQ函数。当没有并列名次时,一般也是用这两个函数进行排名次。语法如下:
【语法】RANK(number, ref, [order])
【语法】RANK.EQ(number, ref, [order])
order参数用于指定升序或降序排位。TRUE值为升序排;FALSE值或缺省值为降序。
上图中,单元格C2可用以下其中一个公式:
=RANK(B2,B$2:B$11) 或
=RANK.EQ(B2,B$2:B$11)
三、平均值排名公式
平均值排名用RANK.AVG函数。语法如下:
【语法】RANK.AVG(number, ref, [order])
上图中,单元格D2的公式为:
=RANK.AVG(B2,B$2:B$11)
四、中国式排名公式
轮到中国式排名了。
没有一个内置函数可直接实现中国式排名。中国式排名的公式比较复杂,而且,方法比较多。
比如,上图中,单元格E2的公式可以用下面这个数组公式(需按Ctrl+Shift+Enter三键完成输入):
=SUM(IF(B$2:B$11>=B2,1/COUNTIF(B$2:B$11,B$2:B$11),))
我们来分析一下这个公式是怎样实现中国式排名的。
把E2往下拉。我们分析一下并列名次所在行的公式,比如单元格E7的数组公式为:
=SUM(IF(B$2:B$11>=B7,1/COUNTIF(B$2:B$11,B$2:B$11),))
公式中,IF函数返回一个数组:{0; 0; 1/3; 0; 0; 1/3; 0; 1; 1/3; 0}
三个1/3正好代表三个第2名。这里巧妙地利用先倒数,后相加的方法,三个1/3相加后是1,从而使并列的名次只占1个排位。
而对于单元格E8的数组公式:
IF函数返回一个数组:{0; 1; 1/3; 1; 0; 1/3; 1/2; 1; 1/3; 1/2}
其中三个1/3代表三个第2名,两个1/2代表两个第5名。同样地,并列的名次只占1个排位。
单元格E2的公式也可以用下面这个普通公式:
=SUMPRODUCT((B$2:B$11>=B2)*(1/COUNTIF(B$2:B$11,B$2:B$11)))
这个公式同样是利用先倒数,后相加的方法,使并列的名次只占1个排位。
这个公式,可以简写成:
=SUMPRODUCT((B$2:B$11>=B2)/COUNTIF(B$2:B$11,B$2:B$11))
中国式排名还可以用其他方法,例如,E2单元格可以用下面其中一个数组公式:
=COUNT(1/(FREQUENCY(B$2:B$11,IF(B$2:B$11>=B2,B$2:B$11))>0))
=SUM(--(FREQUENCY(B$2:B$11,IF(B$2:B$11>=B2,B$2:B$11))>0))
=SUM(--IF(B$2:B$11>=B2,MATCH(B$2:B$11,B$2:B$11,)=ROW($2:$11)-1))