excel求最大n个数值的平均数问题
以下实现了第一步,求得每个班的任何科目的前20名平均成绩。第二步分到各个工作表建议用VBA语句实现,或者用已有网友建议的作法。
步骤如下:先用LARGE函数得到前20名的成绩点(A);再求得所有大于等于这个成绩点的总成绩(B),B用了SUM数组函数;再求得大于等于这个成绩点的学生总数(C),C也是用SUM数组函数求得的,则(B-(C-20)*A)/20。
求得数值区域是用OFFSET+MATCH, 所以必须要求每个班的记录不得间断,现在OFFSET设的行数的限制是30人,如果超过30人,则需要修改公式,将常量30改成变量,变量值可以用COUNTIF求得。好想被悬赏啊!
如下图H2的公式为:=(SUM((OFFSET($A$1,MATCH($F2,A:A,0)-1,MATCH($G2,$A$1:$D$1,0)-1,30)>=LARGE(OFFSET($A$1,MATCH($F2,A:A,0)-1,MATCH($G2,$A$1:$D$1,0)-1,30),20))*(OFFSET($A$1,MATCH($F2,A:A,0)-1,MATCH($G2,$A$1:$D$1,0)-1,30)))-(SUM((OFFSET($A$1,MATCH($F2,A:A,0)-1,MATCH($G2,$A$1:$D$1,0)-1,30)>=LARGE(OFFSET($A$1,MATCH($F2,A:A,0)-1,MATCH($G2,$A$1:$D$1,0)-1,30),20))*1)-20)*LARGE(OFFSET($A$1,MATCH($F2,A:A,0)-1,MATCH($G2,$A$1:$D$1,0)-1,30),20))/20 , 数组公式,别忘了最后加上大括号(CTRL+SHIFT+ENTER)
=AVERAGEIF(A:A,">="&LARGE(A:A,20))
2、如果表格设计规范的话,用数据透视表可以很快按要求的分出多个表格。
问题1的意思为在30个学生成绩中筛选出前20个最好成绩求平均值。你的公式不管用啊。
不管如何谢谢你。
开始没看到图。既然有排名列,直接使用即可:
=AVERAGEIF(H:H,"<=20",G:G)
分班那个,你表格中并没有班级,无法提供详细步骤。
考号有规则吗?