很多学校对教学成绩的量化越来越科学、越来越规范,笔者所在地区在考核班级成绩时就分为平均分、优秀率、及格率、后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所示。
图4 得到结果
摘自 太平洋电脑网
[此贴子已经被作者于2004-7-4 18:35:24编辑过]
|