countifs求组内美式排名
前几天的文章说过排名的问题,不过都是在同一个区域中求排名。今天说一下组内求排名的问题,比如现在有2个小组,要分别求出每个成员在各自小组中的排名。
-01-
具体应用
1.求小组内美式排名
如下图所示,将一些人分为两个不同的小组,求他们的积分在各自小组中的美式排名。比如,小树在第2组,求她的积分在第2组中的美式排名;小牛在第1组,求他的积分在第1组中的美式排名。
乍一看这个问题挺难的,该怎么求呢?但是我把公式写出来,你就会觉得很熟悉。在D2单元格输入公式=COUNTIFS(B$2:B$8,B2,C$2:C$8,">"&C2)+1,下拉完成。是不是就是昨天说的countifs多条件计数,只不过后面加1。
下面以几个姓名为列说明,先看小树,第一个条件是所属小组是第2组,第二个条件是积分大于10,也就是说所属小组是第2组且积分大于10的有几个?
countifs就会一条记录一条记录的去查找,先看所属小组是否是第2组,如果是,就会看积分是否大于10,如果2个条件都满足,就会算做1个;但如果不是第2组,它就不会看积分了,直接查下一条记录,这样是不是就把第一组的排除掉了,就相当于只在第2组内找大于它的个数。
假如,我说假如啊。大于小树积分的有2个,说明她就是第3名。但现在大于她的积分的有0个,也就是没有大于她的,所以她就是第1名。所以countifs后面要加1。
再看晓龙,所属小组是第2组且积分大于9的有2个,是小树和小胡,所以晓龙的排名是第3名。
最后看一个小牛的,所属小组是第1组,积分为5。在第1组内积分大于5的为0个,所以小牛在第1组中是第1名。
还有另一种做法,在E2单元格中输入公式=SUM(N(IF(B2=B$2:B$8,C$2:C$8,)>C2))+1,按ctrl+shift+enter三键,下拉完成。这种做法是先将每个小组的积分区分开,也就是是第1组的返回第1组的积分,是第2组的返回第2组的积分。然后再用组内积分和每个积分进行比较,求出大于它的个数,再加1,就是美式排名。
2.求小组内中式排名
组内中式排名的公式比较长,在F2单元格输入公式=SUM(N(IF(MATCH(IF(B2=B$2:B$8,C$2:C$8,),IF(B2=B$2:B$8,C$2:C$8,),)=ROW($2:$8)-1,IF(B2=B$2:B$8,C$2:C$8,),)>C2))+1,按ctrl+shift+enter三键,下拉完成。
目前只想到这种方法,公式很长我也不想解释了,主要是和美式排名比较一下。以第2组为例,美式的排名为1,1,3,4。中式排名为1,1,2,3。如果你感兴趣的话,可以研究一下组内中式排名,看看有没有其他的方法。
链接:
https://pan.baidu.com/s/18hJsJn5NbF8UXPHBC-KLdw
提取码:i2g1