Office中国论坛/Access中国论坛

标题: [转帖]Excel中如何计算后10%学生的平均分 [打印本页]

作者: tmtony    时间: 2004-5-14 20:09
标题: [转帖]Excel中如何计算后10%学生的平均分
作者:张智聪、张崇文  出处:中国电脑教育报



很多学校对教学成绩的量化越来越科学、越来越规范,笔者所在地区在考核班级成绩时就分为平均分、优秀率、及格率、后10%学生的平均分、进步幅度五大部分。对笔者来说,计算平均分、优秀率、及格率、进步幅度都不在话下,但计算后10%学生的平均分,着实叫人为难。一是各班学生数都不一样,多的40多人,少的仅20多人,很难把各班后10%“一刀切下”;二是想编写程序吧,对我等菜鸟来说又太困难。难道就只有把每一科的成绩都按从高到低的顺序排下来,然后一个班一个班地处理吗?这样一来,学生分数全打乱不说,单是我镇一共有六个年级,每个年级有二十几个班,每个班平均四个单科,那工作量……



  后来,笔者终于想出了一个办法,为讲解方便,笔者以只有两个单科的二年级为例。



  1. 用函数count计算出每个班级的学生数,进而计算出后10%一共有多少个学生。



  (1)选中所有工作表,然后选中E51单元格(行数一定要大于最大班学生数)。



  (2)在E51单元格内输入“=round(count(C2:C50)*0.1)”。其中函数round是用来取整的(如图1)。













图1 计算学生数









  2. 用函数small从每科成绩中取出5个小分,并从小到大编上序号。



  (1)在G52~G56单元格中输入1~5,然后依次在H52~H56中输入“=small(C2:C50,1)”,“=small(C2:C50,2)”,…,“=small(C2:C50,5)”(如图2)。













图2 编序号





  (2)将H52~H56复制到I列相应单元格,得到第二个单科的5个小分。



  3. 用函数if把不需要的分数置零。



  (1)依次在E52~E56单元格中输入“=if(G52<=E51,H52,0)”,“=if(G52<=E51,H53,0)”,…,“=if(G52<=E51,H56,0)”(如图3)。为了保证对单元格“E51”的绝对引用,可以把公式中的“E51”换成“$E$51”。















图3 把不需要的分数置零



  (2)同样将E52~E56复制到F列相应单元格,得到第二个单科后10% 的分数。



  4. 计算最终想要的后10%学生的平均分。



  (1)在C51单元格中输入“=sum(E52:E56)/$E$51”。



  (2)将C51复制到D51,最后结果如图4所示。

[此贴子已经被作者于2004-5-14 12:12:04编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3