加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

巧用数组求平均值

(2013-12-11 09:43:36)
标签:

平均分

任意

名次

中间

前几名

分类: IT

有朋友是教学的,几乎每周都要统计学生的考试成绩,如前十名的平均成绩,后来竟然要求从5名到10名的平均成绩,十几班让他用普通方法弄了好长时候。实际上如果用数组来,很容易解决这个问题。

成绩表如下,各科不用排序。

http://s8/mw690/001EG9V7ty6EU02X1ST97&690

现在要求出英语科的成绩在前10的学生平均成绩,如果用一般方法很是麻烦,但用数组确实简单。

如下:

http://s4/mw690/001EG9V7ty6EU0dVcKT93&690

在E39中输入以下内容:=SUM(((RANK(E3:E38,E3:E38)<=10))*1*(E3:E38))/10

然后同时按下shift+ctrl+enter三个组合键,公式变为::{=SUM(((RANK(E3:E38,E3:E38)<=10))*1*(E3:E38))/10},多了个在括号,表示是数组公式,就会计算出你要的结果了。

解释:RANK(E3:E38,E3:E38)<=10,是找出E3:E38单元格中的成绩在前10名的为ture(1),否则为flase(0).

乘以1转化为可计算的数字,再乘以(E3:E38)中对应的成绩,sum求和,最后除以10求平均值。

你可以根据你的要求,来更改上面公式中的数据,从而为你所用。

实际上呢,要求前10名学生的平均分,有更简单的公式。

{=AVERAGE(LARGE(C3:C32,ROW(INDIRECT("1:10"))))}

你只要更改后面的10的大小,可以任意名次的平均值。

同样求出6名-10名学生的平均成绩。
http://s13/mw690/001EG9V7ty6EU11JUks5c&690

在c39单元格中输入的公式如图为:

=SUM(((5<=10))*1*(C3:C38))/5

然后同时按下shift+ctrl+enter三个组合键,公式变为::{=SUM(((5<=10))*1*(C3:C38))/5},多了个在括号,表示是数组公式,就会计算出你要的结果了。

过程就不在说明了,自己想想其中的道理吧!

当然也可以用下面这个公式,更为简洁:

{=AVERAGE(LARGE(C3:C32,ROW(INDIRECT("5:10"))))}

你只需要更改5:10,可以求任何名次之间的平均值。

 

总之,用数组真方便。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有