设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2945|回复: 3
打印 上一主题 下一主题

[基础应用] Excel中如何计算后10%学生的平均分

[复制链接]
跳转到指定楼层
1#
发表于 2004-7-5 02:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很多学校对教学成绩的量化越来越科学、越来越规范,笔者所在地区在考核班级成绩时就分为平均分、优秀率、及格率、后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编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-9-7 18:12:00 | 只看该作者
这个问题用数组解决更加简便在任意单元格内输入:=AVERAGE(SMALL($C$2C$50,ROW($A$1A$10)))输入完毕后按Ctrl+Shift+Enter,公式就变成{=AVERAGE(SMALL($C$2C$50,ROW($A$1:$A$10)))}     大家不防试试
3#
发表于 2005-1-14 03:59:00 | 只看该作者
楼上说的好.
4#
发表于 2005-2-15 16:19:00 | 只看该作者
还是数组好呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 23:36 , Processed in 0.078451 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表