昨天,一个朋友私信我,说如何计算某班前学生的平均分、通过率、优秀率。

还要求是混班。下面就我懂的,跟大家交流一下,看我编的对不对,多多指正啊!

在讲之前,先说下几个函数。

一、large 可以用来计算区域中从大往小数排名第几的数值。

语法:large(array,k)

array表示我们要统计的数组或区域。

k表示要查询从大往小排名第几的名次。

总分第一的 =LARGE(G2:G14,1) 390 和我左边用rank函数的结果是一样的

求第四名的 =LARGE(G2:G14,4) 367 和我左边用rank函数的结果是一样的

列出前10名学生总分, 选用10个单元格,输入=LARGE($G$2:$G$14,{1;2;3;4;5;6;7;8;9;10}) ctrl+shift+enter

二、sumproduct,解释为在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。按我个人解释就是两个以上的数组乘积之和。

语法: SUMPRODUCT(array1, [array2], [array3],…)

其中每个array都表示一个数组,array个数不超过255个。

c列是a b列数字的积 c11是c3:c10的和

E2中输入 =SUMPRODUCT(A3:A10,B3:B10) 492和c11值一样。

sumproduct还可以进行条件计数

求一班 语文的个数 =SUMPRODUCT((A2:A17="一班")*(B2:B17="语文")) 6

sumproduct 进行条件求和

F2 手动计算 一班 语文科目均分之和 594

G2输入 =SUMPRODUCT((A2:A17="一班")*(B2:B17="语文")*(C2:C17)) 594

三、AVERAGE 求平均值

语法: AVERAGE(Number1,Number2……)

其中: Number1,number2,…是要计算平均值的 1~30 个参数。

D2 =AVERAGE(B2:C2,B2,B3,B4,B5)

也可以输入 =AVERAGE(B2:B5)

列平均值 =AVERAGE(B:B)

四: 实战

混班,怎么统计某班前几名学生的平均分,及格率和优秀率。

先准备2个表 第一个我命名“成绩单”,第二个我命名“统计” 为方便看,我班11班的都放一起了

A4-A9 是班级名称 11 21 31 41 51 61

语文平均分 =AVERAGE(IF(成绩单!$C$2:$C$998*(成绩单!$A$2:$A$998=A4)>=LARGE(成绩单!$C$2:$C$998*(成绩单!$A$2:$A$998=A4),10),成绩单!$C$2:$C$998,"")) ctrl+shift+enter 结果是82

校验 =AVERAGE(C2:C11) 82 结果一致

语文及格率: =SUMPRODUCT((成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4)>=LARGE(成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4),10))*(成绩单!$C$2:$C$1000>=60))/SUMPRODUCT(N(成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4)>=LARGE(成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4),10)))

ctrl+shift+enter 结果 100%

校验 前十名成绩都大于60 结果一致

语文优秀率:

=SUMPRODUCT((成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4)>=LARGE(成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4),10))*(成绩单!$C$2:$C$1000>=90))/SUMPRODUCT(N(成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4)>=LARGE(成绩单!$C$2:$C$1000*(成绩单!$A$2:$A$1000=A4),10))) ctrl+shift+enter 结果40%

校验: 10人 40个大于90分的,正好40%

希望能帮到你。如果好,请多多关注我的头条,谢谢!

相关推荐