关于求平均值的函数,前面已经学过AVERAGE函数,本节继续深入学习AVERAGEIF、AVERAGEIFS等与平均值有关的函数。
AVERAGEIF函数是返回某个区域内满足给定条件的所有单元格的平均值(算术平均值),此函数与SUMIF函数(4.1.2节)的唯一区别是一个求平均值,一个求和。除此之外,AVERAGEIF函数的任何特性都与SUMIF函数一样。
函数语法说明:
AVERAGEIF(range,criteria,[average_range])
● range:必需参数。要计算平均值的一个或多个单元格,不能是数组。
● criteria:必需参数。形式为数字、表达式、单元格引用或文本的条件,用来定义将要计算平均值的单元格,可以支持数组、通配符等形式的条件。
● average_range:可选参数。计算平均值的实际单元格。如果省略,则使用range。
忽略区域中包含TRUE或FALSE的单元格。如果average_range中的单元格为空单元格,那么AVERAGEIF将忽略它;如果range为空值或文本值,那么AVERAGEIF 将返回错误值#DIV0!;如果条件中的单元格为空单元格,那么AVERAGEIF会将其视为0值;如果区域中没有满足条件的单元格,那么AVERAGEIF将返回错误值#DIV/0!
average_range无须与range具备同样的大小和形状。确定计算平均值的实际单元格的方法为:使用average_range中左上角的单元格作为起始单元格,要保证average_range参数中的区域与range参数中的区域大小相同。
实例49 统计出各店的平均销售额
问题描述: 图4-32左边的“各店销售表”列出了各店的销售金额,现在需要在图4-32右边的表格中统计出各店的平均销售金额?
图4-32
解决方法: 本实例可以使用AVERAGE+IF函数来配合完成,但AVERAGEIF函数不正是它们的合体吗?所以下面用这两种方法来解答。
操作步骤: 如图4-33所示,首先将鼠标光标定位在F3单元格,输入公式=AVERAGEIF(B$3:B$8,E3,C$3:C$8),然后将公式向下填充,完成计算。
图4-33
步骤: 解析公式AVERAGEIF(B$3:B$8,E3,C$3:C$8),第1参数中的B$3:B$8是要判断是否符合条件的区域,第2参数中的E3是条件单元格,第3参数中的C$3:C$8对应求平均值的单元格区域,所以此实例的技术含量中规中矩。
也可以使用数组公式,首先在F3单元格中输入数组公式=AVERAGE(IF(B$3:B$8=E3,C$3:C$8)),然后按Ctrl+Shift+Enter组合键,再向下填充公式。这种方法能帮助读者更好地理解AVERAGEIF函数的运算规则。
AVERAGEIFS函数与SUMIFS函数(4.1.3节)的特性是一样的,区别只在于一个是多条件求和,一个是多条件求平均值。接下来学习一下AVERAGEIFS函数的应用。
函数语法说明:
AVERAGEIFS(average_range,criteria_range1,criteria1,[criteria_range2,criteria2],...)
● average_range:必需参数。要计算平均值的一个或多个单元格,不能是数组。
● criteria_range1:必需参数。作为criteria1 测试的单元格区域,不能是数组。
● criteria1:必需参数。定义使criteria_range1中的那些单元格符合设定的条件,支持比较运算、数组、通配符等匹配方式。
注意 criteria_range1 和 criteria1 是用于搜索某个区域是否符合特定条件的搜索对。一旦在该区域中找到了项,将计算average_range中对应单元格的平均值。
实例50 统计每个参赛选手的最后得分
问题描述: 图4-34所示的“2017年××公司歌咏比赛评分表”中列出了各选手的得分。一共有5个评委打分,最终得分的计算方法是:去掉一个最高分,去掉一个最低分之后,将余下的分值进行平均计算。
图4-34
图4-35
解决思路: 本实例使用AVERAGEIFS函数完成,条件是将大于最低分,且小于最高分的分值进行求平均计算。
操作步骤: 如图 4-35 所示,首先将鼠标光标定位在 G3 单元格,输入公式=AVERAGEIFS (B3:F3,B3:F3,〝>〝&MIN(B3:F3),B3:F3,〝<〝&MAX(B3:F3)),然后向下填充公式,完成计算。
步骤1: 第1参数中的B3:F3是指定要进行平均计算的区域。
步骤2: 第2参数中的B3:F3是要进行第1个条件判断的区域,第3参数中的〝>〝&MIN(B3:F3)是第1个条件,计算结果为 〝>8.12〝。
步骤3: 第4参数中的B3:F3是要进行第2个条件判断的区域,第5参数中的〝>〝&MAX(B3:F3)是第2个条件,计算结果为 〝>9.49〝。
但要注意,如果有多个最低分或者最高分,则多个条件成立的值都会被排除,而不是只排除一个。如果只想排除一个,则可以用=(SUM(B3:F3)-MAX(B3:F3)-MIN(B3:F3))/3这个公式。
TRIMMEAN函数返回数据集的内部平均值,计算排除数据集顶部和底部尾数中数据点的百分比后取得的平均值。当要从分析中排除无关的数据时,可以使用此函数。
函数语法说明:
TRIMMEAN(array,percent)
● array:必需参数。需要进行剔除并求平均值的数组或数值区域。
● percent:必需参数。计算时所要去除的数据点的比例。比如数组{5,2,9,8,10},要去除一个最大和最小的值,百分比表达式为2/5,其中2表示要在{5,2,9,8,10}中去除一个最大值和一个最小值,5为数组元素个数。
实例51 统计每个参赛选手的最后得分(弃权不计)
问题描述: 图4-36所示的“2017年××公司歌咏比赛评分表”中列出各选手的评分。一共有6个评委打分,但如果有评委弃权,在计算平均分时则不能计算进去。最后得分的计算方法是:去掉一个最高分,去掉一个最低分之后,将余下的分值进行平均计算。
图4-36
解决方法: 此实例最好的解决方法是使用TRIMMEAN函数,最关键的是第2参数百分比的设置,要去除的最高分、最低分。如果要去除一对最高分、最低分,则表示为:2/评委人数;如果去除两对最高分、最低分,则表示为:4/评委人数,以此类推。
操作步骤: 如图4-37所示,首先将鼠标光标定位在H3单元格,输入公式=TRIMMEAN(B3:G3,2/COUNT(B3:G3)),然后向下填充公式,完成计算。
图4-37
步骤 :解析一下公式中的2/COUNT(B3:G3)部分,2为去除的一对最大值和最小值。COUNT(B3:G3)用于计算评委人数,由于有评委弃权,在单元格写入的是“弃权”字符,所以在计算人数时用COUNT函数就可以把弃权的评委过滤出去了。