怎样去掉最大值和最小值,计算每类的平均值?


怎样去掉最大值和最小值,计算每类的平均值?

前段时间在一家企业培训EXCEL课程的时候,学员小V咨询如何计算出下方这个表格中,每个部门的考试分 , 去掉一个最高分和一个最低分之后的平均分 。
怎样去掉最大值和最小值,计算每类的平均值?

我们先来介绍如果不分类,只是计算考试分数列,去掉最大值和最小值之后计算平均值 , 应该用哪个函数来实现 。

01 TRIMMEAN函数

这里需要用到TRIMMEAN函数返回数据集的内部平均值 。TRIMMEAN 计算排除数据集顶部和底部尾数中数据点的百分比后取得的平均值 。
函数语法:TRIMMEAN(array, percent)
Array:需要进行整理并求平均值的数组或数值区域 。
percent:从计算中排除数据点的分数 。例如 , 如果 percent=0.2,从 20 点 (20 x 0.2) 的数据集中剪裁 4 点:数据集顶部的 2 点和底部的2 点 。
那这里的公式要这样写:
=TRIMMEAN(C2:C17,2/COUNT(C2:C17))
第1个参数是考试分数所在的数据区域,第2个参数是要去掉几个数字,比如这里要去掉1个最大值和1个最小值,也就是2个数字,去除除以这一列的总个数 , 用COUNT函数计算出总个数,算出百分比 。就得到了去掉最大值和最小值之后的平均值 。
理解了这个函数的语法之后 , 我们再来思考学员小V要实现的分类去最大值和最小值算平均值要如何实现 。也就是说,第1个参数要是动态的一个区域,根据E4到E7的部门名称 , 到C列获取对应部门的考试分 。


02 COUNTIFS函数

这里为了方便后面的计算,我们先用COUNTIFS的分类计数函数,计算出每个部门的人数 。此函数的语法是:
COUNTIFS(条件范围1,条件1 , 条件范围2,条件2,……)
本例中的函数是:=COUNTIFS($A$2:$A$17,E4)
怎样去掉最大值和最小值,计算每类的平均值?



03 OFFSET函数

【怎样去掉最大值和最小值,计算每类的平均值?】之后我们需要借助动态区域的OFFSET函数来根据E4:E7的部门名称,到A列中动态选择对应的部门列表 。我们先来看一下OFFSET函数的语法:
OFFSET(起始地址,向上/下偏移的行数,向左/右偏移的列数,返回的行数,返回的列数)
如果是向上和向左偏移就输入负数 。
举例说明一下这个函数的用法,比如我现在要返回“办公室”这个部门的员工对应的考试分数所在的区域,也就是C2:C5这个范围,那我的OFFSET函数就可以这样来写:
OFFSET(C1,1,0,4,1)
怎样去掉最大值和最小值,计算每类的平均值?

C1是考试分列的起始地址,第1个参数1是指向下偏移1行,移动到C2;第3个参数0是指没有向右的偏移;第4个参数4是指一共有4个单元格是办公室;第5个参数1是指要返回1列的数据,也就是最后的数据区域是C2:C5这个动态的区域 。
现在我们就需要把第2个和第3个参数变成动态 。


04 MATCH 查询位置

我们需要查询“办公室”在A列中的起始位置,这时候就需要用到MATCH这个查询位置的函数,我们先来看看MATCH函数的语法 。
MATCH(查询值,包含查询值的1行或1列,0/1)
0:精确查询 1:区间查询
本例中的函数是:MATCH(E2,A1:A17,0)
现在我们来把这几个函数组合在一起 , 公式如下:
=TRIMMEAN(OFFSET($C$1,MATCH(E4,$A$2:$A$17,0),0,F4,1),2/F4)
怎样去掉最大值和最小值,计算每类的平均值?

到此,就实现了小V需要的去掉最大值和最小值,计算出每类的平均值 。

相关经验推荐