用ET表格巧妙解决多条件下的成绩统计
在ET表格中,对于班级成绩册的各科求总分、平均分以及排名次等,都可算是轻松的任务。但是,对于多年级多班级混合编排的班级,如果想再类似的操作,那又该如何进行呢?
图1
图1所示为不同学校不同专业混编的示意成绩册。我们需要计算各学校各专业各科目的总分和平均分,并对各学生在各自学校各自专业内排定名次。这项看起来艰巨复杂的任务,在ET表格中正确使用SUMPRODUCT函数,那么完成起来其实也并不算怎么困难。咱们只需如此操作即可:
一、多条件求和
比如我们需要计算工业职专机电专业所有学生的语文成绩总分。分析表格可以看到:学校名称在B2:B16单元格区域,专业名称在C2:C16区域,语文成绩则分布在D2:D16区域。在合适的单元格输入公式“=SUMPRODUCT((B2:B16="工业职专")*(C2:C16="机电"),D2:D16)”,回车后可以得到结果“228”了。看出来了吧?公式中的前两个小括号内就是需要满足的条件,而“D2:D16”就表示需要求和的区域。如果有更多的条件,那就再在前面加小括号就可以了。要注意的是小括号中间用“*”连接。
至于我们希望的各学校各专业各科目的总分,那就得设计如图2所示表格来解决了。
图2
先建好空白表格,如图2所示录入学校名称和专业名称。在N2单元格输入公式“=SUMPRODUCT(($B$2:$B$16=$L3)*($C$2:$C$16=$M3),D$2:D$16)”,选中该单元格的填充句柄,向右和向下拖动复制公式至整个表格,那么各学校各专业各学科的总分就有了。不太难吧?
由于各学校的专业设置并不相同,所以某些的某些专业的各科总分计算为“0”。如果想追求尽善尽美,那么我们可以用IF函数,当结果为“0”时不显示任何内容,这样可以使结果显示尽量美观一些。公式为“=IF(SUMPRODUCT(($B$2:$B$16=$L3)*($C$2:$C$16=$M3),D$2:D$16)=0,"",SUMPRODUCT(($B$2:$B$16=$L3)*($C$2:$C$16=$M3),D$2:D$16))”。
二、多条件求平均分
求和与求平均分只有一步之遥,那就是需要统计出各学校每个专业的人数。有了它,那么平均分就简单多了。这同样可以使用SUMPRODUCT函数来完成。
图3
在如图3所示的人数统计表的N18单元格输入公式“=SUMPRODUCT(($B$2:$B$16=$L18)*($C$2:$C$16=$M18)*(D$2:D$16<>""))”,然后向右向下复制公式就可以了。
求平均分即拿总分除以人数。因此,如果人数为“0”,那么求平均分时就会出现问题。因此,在求平均分时,同样需要用IF函数做一个判断。借用前面的两个表格,那么工业职专机电专业的语文平均分公式可写为“=IF(ISERROR(N3/N18),"",N3/N18)”,其余的复制公式即可,如图4所示。
图4
公式中的ISERROR(N3/N18)作用判断“N3/N18”结果是否会出现错误。
如果直接不借助人数统计表格直接求平均分,那么该公式可写为“=IF(SUMPRODUCT(($B$2:$B$16=$L3)*($C$2:$C$16=$M3)*(D$2:D$16<>""))=0,"",SUMPRODUCT(($B$2:$B$16=$L3)*($C$2:$C$16=$M3),D$2:D$16)/SUMPRODUCT(($B$2:$B$16=$L3)*($C$2:$C$16=$M3)*(D$2:D$16<>"")))”。
三、多条件下的排名次
在不破坏原来数据表排序的情况下,为每位学生排定在本校本专业内的名次,看起来很难,但是有了SUMPRODUCT就不一样了。试想一下,借助于SUMPRODUCT函数,我们可以轻松统计出符合多个条件的人数。那么工业职专机电专业总分为“616”的同学的名次,不就是学校为“工业职专”、专业为“机电”、总分“>616”的人数再加上1嘛!
有了这个思路,公式就好写了吧? J2单元格公式为“=SUMPRODUCT(($B$2:$B$16=B2)*($C$2:$C$16=C2)*($I$2:$I$16>I2))+1”,写完后,向下复制公式就行了。结果如图5所示。
图5