首先考虑总分,如果总分一样,再考虑科目1,如果科目1分数一样,再考虑科目2,如果科目2分数一样,再考虑科目3。 就等同于按照总分为第一关键字、科目1为第二关键字、科目2为第三关键字、科目3为第四关键字降序排列,然后再统计名次,如下图: 如果仅按总分排名次,大家基本都能会,用RANK函数就可以了。如下图,在F2单元格输入公式“=RANK(B2,$B$2:$B$28)”,确定,公式向下填充即可。比如总分同是220分,排名都是4,不能更细的区分出名次排位。如果总分相同,再按照科目1进一步计算排名,则需要换公式。 在F2单元格输入公式“=SUMPRODUCT(N($B$2:$B$28*100+$C$2:$C$28>B2*100+C2))+1”,确定,公式向下填充,如下图: 我们可以看到:总分相同,但科目1分数不同,则名次不同。 $B$2:$B$28*100+$C$2:$C$28:本部分含义是将总分依次乘以100,再加上科目1,返回值“总成绩*100+科目1”数组。$B$2:$B$28*100+$C$2:$C$28>B2*100+C2):本部分含义是将“总成绩*100+科目1”数组,依次与公式所在行考生的“总成绩*100+科目1”进行对比,如果大于则返回TRUE,否则返回FALSE。本部分返回TRUE与FALSE组成的逻辑值数组。N($B$2:$B$28*100+$C$2:$C$28>B2*100+C2):用N函数将TRUE与FALSE组成的逻辑值数组中的TRUE转换成1,FALSE转换成0,本部分返回1与0组成的数组。SUMPRODUCT(N($B$2:$B$28*100+$C$2:$C$28>B2*100+C2))+1:用数组求和函数对1与0组成的数组求和,并加1,得名次。如果总分相同、科目1分数相同,可以再考虑科目2进一步排名,在F2单元格输入公式“=SUMPRODUCT(N($B$2:$B$28*10000+$C$2:$C$28*100+$D$2:$D$28>B2*10000+C2*100+D2))+1”,确定,公式向下填充,如下图:如果总分相同、科目1科目2分数相同,可以再考虑科目3进一步排名,公式怎么写?朋友们可以试着写出来,留言。韩老师将数据分享,大家可以下载练习,练习时,可以修改相应的数据以检验自己公式对与否。
|