如何用公式实现根据多个条件(多关键字)排名次
问题:多名考生的考试成绩如下表
文章插图
需要排出名次,具体要求:首先考虑总分,如果总分一样,再考虑科目1,如果科目1分数一样,再考虑科目2,如果科目2分数一样,再考虑科目3 。
就等同于按照总分为第一关键字、科目1为第二关键字、科目2为第三关键字、科目3为第四关键字降序排列,然后再统计名次,如下图:
文章插图
只不过,这里要求用函数准确统计出每位考生的名次 。
公式实现如果仅考虑总分
如果仅按总分排名次,大家基本都能会,用RANK函数就可以了 。如下图,在F2单元格输入公式“=RANK(B2,$B$2:$B$28)”,确定,公式向下填充即可 。这样得出的结果:总分一样,则名次一样 。
比如总分同是220分,排名都是4,不能更细的区分出名次排位 。如果总分相同,再考虑科目1
如果总分相同,再按照科目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
文章插图
【多关键字 怎么用公式实现根据多个条件排名次】如果总分相同、科目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进一步排名,公式怎么写?朋友们可以试着写出来,留言 。
推荐阅读
- 堃的拼音怎么读
- 甯怎么读
- 全国饼干日:提供世界上最多样化和最受欢迎的甜点
- 怎么去死皮
- 小气泡里的面罩怎么用
- 做完美甲多久可以碰水
- 这些多条件统计函数,都是“IFS”结尾,有啥区别?
- Excel 多工作表合并
- 利用数据透视表向导实现多工作表合并计算
- excel只需鼠标按序点下去,即可多工作合并