Office中国论坛/Access中国论坛

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

作者: cdz725    时间: 2004-7-5 02:31
标题: 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所示。









图4 得到结果              



                                                                                        摘自   太平洋电脑网



[此贴子已经被作者于2004-7-4 18:35:24编辑过]


作者: victor76    时间: 2004-9-7 18:12
这个问题用数组解决更加简便在任意单元格内输入:=AVERAGE(SMALL($C$2C$50,ROW($A$1A$10)))输入完毕后按Ctrl+Shift+Enter,公式就变成{=AVERAGE(SMALL($C$2C$50,ROW($A$1:$A$10)))}     大家不防试试
作者: hug1979    时间: 2005-1-14 03:59
楼上说的好.
作者: zyz218    时间: 2005-2-15 16:19
还是数组好呀




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