欢迎转发和点一下“在看”,文末留言互动!
置顶公众号或设为星标及时接收更新不迷路
小伙伴们好,今天和大家聊一聊排名问题。我们遇到的大多数排名问题都涉及到中国式排名,今天的这道题目也是这样的。原题目如下:
这道题目稍有一些难度的。首先要考虑中国式的排名,其次,还要考虑如何姓名为空时业绩不参与排名。
但无论怎样,处理这道题目时肯定会用到COUNTIF函数以及SUMPRODUCT函数。它们是处理中国式排名问题时一组常用的函数组合。
01
操练中国式排名
在单元格F2中输入下列公式,三键确认后向下拖曳即可。
=IF(A2="","",SUMPRODUCT(IFERROR(($C$2:$C$10>C2)/COUNTIF($C$2:$C$10,$C$2:$C$10),0))+1)
依靠SUMPRODUCT函数和COUNTIF函数可以解决中国式排名,那如何解决姓名为空不参加排名呢?其实只需要用IF函数做一个逻辑判断就可以了。
$C$2:$C$10>C2
这部分确定,在整个业绩中,有那些成绩是大于当前成绩的。这部分的结果是{FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE},表明只有第2行和第7行的数值不符合。
COUNTIF($C$2:$C$10,$C$2:$C$10)
利用COUNTIF函数统计一下每个业绩数值出现的次数。这部分的结果为{1;3;3;3;4;0;4;4;4},表明“50”出现一次;“80”出现3次;“90”出现4次。结果中的那个“0”对应源数据中的空格。
($C$2:$C$10>C2)/COUNTIF($C$2:$C$10,$C$2:$C$10)
上述两项相除后,得到这样的一个结果:
{0;0.333333333333333;0.333333333333333;0.333333333333333;0.25;#DIV/0!;0.25;0.25;0.25}。
以业绩“80”为例:
由于业绩大于“50”所以返回结果是TRUE,相当于“1”,而COUNTIF函数返回结果是3,因此就有3个“1/3”。
这部分的含义是,不论相同的数据有多少个,它们都只占用一个排名名额。
SUMPRODUCT(IFERROR(($C$2:$C$10>C2)/COUNTIF($C$2:$C$10,$C$2:$C$10),0))
将错误值转换为0后求和,得到的结果是2,表明比“50”大的业绩只有“80”和“90”两项。
SUMPRODUCT(IFERROR(($C$2:$C$10>C2)/COUNTIF($C$2:$C$10,$C$2:$C$10),0))+1
上述结果再加上1就是当前业绩的排名。
IF(A2="","",SUMPRODUCT(IFERROR(($C$2:$C$10>C2)/COUNTIF($C$2:$C$10,$C$2:$C$10),0))+1)
最后利用IF函数将不用排名的业绩转换为空值。
这条公式实际上也是借用了SUM(1/COUNTIF())这个求不重复数据个数的经典应用。
本期内容练习文件提取方式:
链接: https://pan.baidu.com/s/1Wk0qe4mqRq2Fqb3gYsRLoQ?pwd=r33i 提取码: r33i
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”