你:“组内中国式排名有点复杂啊”。EXCEL:“我能坚持”。
你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天来分享下组内中国式排名。先来说下中国式排名的规则,比如有4个人的分数分别是100,90,90,80,那么ta们的排名分别是第1名,第2名,第2名,第3名。
1.求各成员在各自小组内的中国式排名

先来说下求中国式排名的大概思路,第一点先要对分数去重,第二点要计算去重后的分数中大于等于当前分数的个数。
还是以100,90,90,80这4个分数为例说明,第1步去掉重复的分数,得到100,90,80这3个分数。
第2步,100,90,80这3个分数中大于等于100的有1个,大于等于90的有2个,大于等于80的有3个,所以100是第1名,90是第2名,80是第3名。
明白了这个,就可以看我们的问题了。我们的问题更加复杂,多了个组内排名的条件。这里我先说公式吧,在D2单元格输入下面的公式,向下填充,完成。
=COUNT(0/FREQUENCY(ROW($1:$999),(A$2:A$21=A2)*(C$2:C$21-C2)))这样的话,不是1组的都变为0,是1组的都变为对应的分数减去C2,如下图所示。我们要的是1组中大于等于0的那些数字,因为大于等于0的数字,对应的是大于等于C2的分数。

frequency的第1参数选ROW($1:$999),这样只在第2参数的正数位置计数,负数和0的位置不计数,而且由于第1参数最大是999,会在最后一个位置计数,正好把少了0位置上的计数补回来。(如果对frequency不熟悉,这段会比较难理解)
最后用count(0/frequency())计数,就得到组内中式排名的结果。我自己都讲的很艰难,大家最好看公式自己研究。
下面分享另一个公式,这个公式可能会比较好理解一点。和不带条件的中式排名的用法很类似,公式就不再解释了,大家自己拆解。
=SUMPRODUCT((A$2:A$21=A2)*(C$2:C$21>=C2)/COUNTIFS(A$2:A$21,A$2:A$21,C$2:C$21,C$2:C$21))=SUM(N(UNIQUE(FILTER(C$2:C$21,A$2:A$21=A2))>=C2))
https://pan.baidu.com/s/1TX6HdSoQSjaerQvKfDqkrA
赞 (0)
