平均函数average的一般和不一般的用法
average是求平均函数,返回参数的平均值 (算术平均值)。今天说下它的常规用法和不常规用法。
-01-
函数说明
它的函数写法如下:
AVERAGE(number1, [number2], ...)
Number1 必需。要计算平均值的第一个数字、单元格引用或单元格区域。
Number2, ... 可选。要计算平均值的其他数字、单元格引用或单元格区域,最多可包含 255 个。
注意:
参数可以是数字或者是包含数字的名称、单元格区域或单元格引用。
直接键入到参数列表中的数字的逻辑值和文本会计算在内。
如果区域或单元格引用参数包含文本、逻辑值或空单元格,则这些值将被忽略;但包含零值的单元格将被计算在内。
如果参数为错误值或为不能转换为数字的文本,将会导致错误。
-02-
示例解释
1.求每个人3科的平均分
在E3单元格输入公式=AVERAGE(B3:D3),下拉完成。求B3:D3这个区域的平均值,也就是84,68,66的平均值。常规用法就是这么简单。
-03-
具体应用
1.如果3科成绩都大于60分,求平均分数,否则显示为0
思路肯定是先判断3科是否都大于60,如果大于,求平均,否则为0。常规的做法是先用and来判断3科是否都大于60,再用if来返回对应的值。公式为=IF(AND(B12>60,C12>60,D12>60),AVERAGE(B12:D12),)。
但是,现在就要用average的不常规用法来完成,公式为=(AVERAGE(B12>60,C12>60,D12>60)=1)*AVERAGE(B12:D12),下拉完成。
AVERAGE(B12>60,C12>60,D12>60)这部分是求3个逻辑值的平均分,相当于AVERAGE(TRUE,TRUE,TRUE),可以按F9查看。当逻辑值在参数中,不在数组中时,是会参与运算的,相当于1。也就是average(1,1,1),最后还是1。
3科中如果有1科小于60或者多科小于60,average的结果就会小于1。所以用average的结果和1比较,如果等于1,说明3科分数都是大于60的,否则至少有1科分数是小于60分的。
最后用AVERAGE(B12>60,C12>60,D12>60)=1的结果和AVERAGE(B12:D12)相乘,就是它的平均分。如果AVERAGE(B12>60,C12>60,D12>60)不等于1,最后相乘的结果返回0。
不知道你明白了没有,最好按F9进行查看。
2.如果工龄超过5年,奖金加200,否则加100
通常的做法是用if函数进行判断,公式为=IF(B21>=5,200,100),下拉完成。如果用average来完成呢?在E21单元格输入公式=AVERAGE(B21>=5,1)*200,下拉完成。和上面的思路差不多,用工龄大于等于5的结果和1求平均,结果为1和0.5。最后再乘以200就是对应的奖金。当然这里200和100是2倍的关系,如果没有这种关系,这种方法就不行了。
链接:
https://pan.baidu.com/s/1Auh4Tnit1XQfcwhSUeSSeQ
提取码:m29l