腾讯视频/爱奇艺/优酷/外卖 充值4折起
在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