加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2018-08-01 20:48:25)
标签:

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))

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有