年度考核如何实现排名?

作者: 猴子数据分析 | 来源:发表于2020-04-16 18:58 被阅读0次

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

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

    1.如何排名?

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

    rank(要进行比较的数值,在哪个区域比较,降序还是升序)

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

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

    在C2单元格输入公式:

    =rank(B2,$B$2:$B$11,0)

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

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

    2.如何选择排名方式?

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

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

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

    =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函数的结合或者借助数据透视表来实现排名。

    推荐:人工智能时代的必学技能

    相关文章

      网友评论

        本文标题:年度考核如何实现排名?

        本文链接:https://www.haomeiwen.com/subject/kfbdvhtx.html