如何用excel计算全科合格率?各位大侠请赐教。

求一公式,例如:我要算出满足条件的结果:1、B列(班级);2、D列(语文成绩)E列(数学成绩)F列(英语成绩)……,计算某一班的语文、数学、英语……这些科目都大于或等于60分的人数,前提是班级是乱的,不用将班级排序(不用一个班在某行和某行之间,这样删除或增加一个学生,整个结果就错了),我想用动态的,括号里说的是一种静态的。请赐教!

你这个情况最好是用数组公式,因为一般的公式表达太过麻烦而且容易出错。
{=SUM(($B$3:$B$200="所在班级")*($D$3:$D$200>=60)*($E$3:$E$200>=60)*($F$3:$F$200>=60))}
说明:1、公式中的大括号{}不用输入,是在你把其他部分输入完成之后,按“Ctrl+Shift+Enter ”组合键结束数组公式的输入,大括号{}是自己生成,表示这就是数组公式了。
2、公式中$3是定义你的有效数据是从第3行开始的,你可以改成你报表里有效数据的最开始一行,同理$200是定义最后一行是第200行,你也可以更改。不过所有的3和200所对应位置的数字必须一致,也就是区域值必须是一致的。
3、公式完成后可以在条件区域内随意删除或增加一行或多行,公式里的最后一行数字会自动更改,不过不要在第一行之前和最后一行之后增加,这样增加的计算不上。
4、数组公式我自己用的也比较少,欢迎一起探讨学习!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-07
B列后面插入一空列,写个公式:
=countif(E2:H2,">=60")
向下复制后得到每个学生大于等于60分的科目数,接下来就容易统计了。
=sumproduct((B2:B1000=c412)*(C2:C1000=6))
第2个回答  2013-01-07
请试试这个公式:
=SUMPRODUCT((B1:B100="指定班级")*(D1:D100>=60)*(E1:E100>=60)*……)追问

=SUMPRODUCT((B3:B409="C412")*(H3:H409>=60)*(I3:I409>=60)*(J3:J409>=60))对吗?但显示:0

追答

抱歉,一下子糊涂了
不应该这样计算
请增加一列作为辅助列,比如K列
然后在K1输入公式:=IF(COUNTIF(H2:J2, ">=60")=COUNT(H2:J2), "全科合格", "")
将K1公式向下复制填充
然后再用公式统计:=SUMPRODUCT((B3:B409="指定班级")*(K3:K409="全科合格"))

第3个回答  2013-01-07
可以把你的表贴出来吗?
应该是A列为姓名(全校学生按姓名排序,不按班级排序),B列是班级名称,C列到F列为该学生各科的成绩分数,要随时得出某一班的某一科拉合格人数(或合格率),是吗?

还是说,要某一班各科全部合格的人数?
第4个回答  2013-01-07
=SUMPRODUCT((B1:B1000="指定班级")*(D1:D1000>=60)*(E1:E1000>=60)*(F1:F1000>=60)*……)/countif(b1:b1000,"指定班级")追问

不合适啊

追答

=SUMPRODUCT((B3:B409="C412")*(H3:H409>=60)*(I3:I409>=60)*(J3:J409>=60))/COUNTIF(B3:B409,"C412")

注意相乘的区域一定要行数一致大小!不能前面是B1:B100 后面却变为 H3:H409

我这个直接计算出合格率。 去掉/COUNTIF(B3:B409,"C412") 就是满足条件的个数!

追问

=SUMPRODUCT((B3:B409="C412")*(H3:H409>=60)*(I3:I409>=60)*(J3:J409>=60))对吗?但显示:0

追答

"C412" 是什么东西? 如果是单元格的话,取消两端的"" 直接输入 =C412

相似回答