|
本帖最后由 xinyi_lulu 于 2019-1-12 23:01 编辑
={SUM(IF(文科!D2:D134>=LARGE(IF(文科!B2:B134=5,文科!D2:D134),45),IF(文科!B2:B134=5,文科!D2:D134,0)))}
用数组公式可以解决,我只是计算了5班文科数学 ,其他模仿填上即可,经手动计算验证是正确的。
公式分析:用if函数来解决,如果该区域内数字大于前45名,就返回该区域的成绩,然后求和。
IF(文科!B2:B134=5,文科!D2:D134),这一个公式实现挑选班出5班的文科的学生成绩。
再用LARGE(IF(文科!B2:B134=5,文科!D2:D134),45),求出上一步挑选的5班的文科的前45名中第45名的学生的分数 ,即使有多个重复的也可以选对。
IF(文科!D2:D134>=LARGE(IF(文科!B2:B134=5,文科!D2:D134),45),IF(文科!B2:B134=5,文科!D2:D134,0))这一步,返回5班文科中大于45名的所有的成绩。
={SUM(IF(文科!D2:D134>=LARGE(IF(文科!B2:B134=5,文科!D2:D134),45),IF(文科!B2:B134=5,文科!D2:D134,0)))}实现对上一步返回的数学成绩求和。这是数组公式,最后需要按下ctrl+shift+enter键完成录入。
我只填个了一个公式,根据这个原理,其他的单元格可以稍加改动完成。我把原表数据复制了一个工作表,进行了手动排序计算,与我公式计算结果相同。出现相同名次的多个学生也能够完成计算。
|
|