前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >年度考核如何实现排名?

年度考核如何实现排名?

原创
作者头像
猴子聊数据分析
修改2020-04-17 10:07:06
7740
修改2020-04-17 10:07:06
举报

说到排名,大家是再熟悉不过了。从还在学校读书时候的分数排名,到现在出来工作了,只要有考核的需要,也都会涉及到排名。

下面就来学习一下Excel里常见的排名方法吧。

1.如何排名?

排名函数(rank),返回指定数值在特定区域中的排名。其语法规则是:

代码语言:javascript
复制
rank(要进行比较的数值,在哪个区域比较,降序还是升序)

第三个参数“降序还是升序”,降序是0,升序是1,如果省略这个参数,则默认为按照降序来进行排名。

案例:按分数从大到小对学生进行排名

在C2单元格输入公式:

代码语言:javascript
复制
=rank(B2,$B$2:$B$11,0)

然后向下填充公式,即可求得所有学生的排名。

除了用rank函数来进行排名,我们还可以转换一下思维:以猴子为例,我们要求猴子的分数在所有学生中的排名情况。

2.如何选择排名方式?

从上面的案例中,我们看到,猴子和马云都是排第1的,有两个第1;而后就是苏火火,排在了第3,而不是第2。

那么如何实现,猴子和马云都是排第1,苏火火排在第2(而不是第3)呢?

在C2单元格,利用countif函数,写下如下公式:

代码语言:javascript
复制
=sumproduct(($B$2:$B$11>$B2)/countif($B$2:$B$11,$B$2:$B$11))+1

下拉填充公式,完成排名。可以看到,两个并列排名第1之后,紧随的是第2,而不是从第3开始。

那么,这个公式怎么理解呢?我们拆解每一步来看下。

第一步:$B$2:$B$11>$B2

意思就是拿B2:B11这个区域的每个数值,都与B2一一进行比较,然后返回逻辑值。如果大于就返回真(true),小于等于就返回假(false)。

第二步:countif($B$2:$B$11,$B$2:$B$11)

这是条件计数,对满足条件的值进行计数,它的运算过程是:

countif($B$2:$B$11,B2)

countif($B$2:$B$11,B3)

countif($B$2:$B$11,B4)

 ……

意思是,统计B2单元格的值在B2:B11区域中出现的次数;统计B3单元的值在B2:B11区域中出现的次数;统计B4单元格的值在B2:B11区域中出现的次数……

第三步:($B$2:$B$11>$B2)/countif($B$2:$B$11,$B$2:$B$11)

第一步得到的是逻辑值,第二步得到的是每个数值出现的次数,逻辑值在参与运算的时候,true=1,false=0。也就是说条件$B$2:$B$11>$B2如果成立,则返回1,如果不成立,则返回0。0除以任何数,结果都为0;而1除以出现的次数,就使得重复出现的数值只计算一次,避免重复计数。

第四步:

sumproduct(($B$2:$B$11>$B2)/countif($B$2:$B$11,$B$2:$B$11))+1

sumproduct函数对结果进行加总求和,即对大于当前值的个数进行求和,如对大于B2的个数进行求和,共有N个,那么,B2的排名就 N+1。

如果你对上面的公式理解起来实在很费劲,其实对于这种排名还有一个更简单的方法,那就是借助数据透视表。

3.如何用数据透视表实现排名?

在数据区域任意一单元格单击,插入数据透视表

把“姓名”拖到行,把“分数”拖到值,连续拖两次。

然后对“分数2”进行“值”字段设置

在弹出的【值字段设置】窗口里,将值显示方式设置为“降序排列”

如图,就得到了中式排名的效果:

修改透视表的列名称,同时对排名进行降序排列,最终如下:

4.总结

排名可以使用rank函数来实现,默认的排名不符合使用习惯,可以使用sumproduct和countif函数的结合或者借助数据透视表来实现排名。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档