或关系求均值(函数虐心版)

最近醉心于Python的学习和分享,好久没有分享Excel相关的文章了。

熟悉我文章的朋友,都知道我特喜欢分享数组函数,也特喜欢分享那种很长的函数。

前几天有朋友问了我一个很好的问题,今天和大家分享一下。

一、一个条件求销售均值

我有一个销售金额列表,现在需要统计石原里美的销售数量均值,我们需要使用averageif函数。

公式:=AVERAGEIF(B2:B12,"石原里美",C2:C12)

Averageif(要判断的列,判断条件,要求均值的列)

下面有个图送给大家

二、或关系多条件求均值

还是这个表,我们需要求石原里美、裴秀智、李智恩的销售均值。

如何处理这个问题呢,如果知道数组函数但是不是特熟练的朋友很愿意犯这个错误来求解。

错误解法如下:

{=AVERAGEIF(B2:B12,{"石原里美";"裴秀智";"李智恩"},C2:C12)}

Averageif实现单条件求和,很多朋友以为将单条件替换为数组即可,这里有个错误认知,是什么呢?如何此时你选中三个单元格然后输入这个函数看一下是什么效果?

当我们在一个单元格输入数组函数的时候,只能显示数组函数第一个的结果,怎么让他显示全部的值呢?如果是分号间隔,需要上下选中连续的单元格,如果逗号间隔,需要左右选中连续的单元格。

所以此种方法无法直接实现多条件或关系求和!

如果才能正确得出我们想要的结果呢?

思路如下:

1、用If函数判断B列是否与目标文本一致,如果一致返回C列的值,反之返回空文本

2、用Average函数对上述结果进行求均值

公式:{=AVERAGE(IF(B2:B12={"石原里美","裴秀智","李智恩"},C2:C12,""))}

大括号不是人为输入的,输入函数后同时按住Ctrl+shift+enter可以自动生成

为什么这个数组函数可以呢?那我们来拆分一下这个函数

最外层Average不表,我们拆分一下IF函数

IF(B2:B12={"石原里美","裴秀智","李智恩"},C2:C12,"")

这个数组函数等于三个IF函数组合而成!

IF(B2:B12="石原里美",C2:C12,"")

IF(B2:B12="裴秀智",C2:C12,"")

IF(B2:B12="李智恩",C2:C12,"")

这个三个IF函数会生成三列数据,第一个IF函数如何B列为石原里美则返回对应销售额,反之返回空文本。

第二个、第三个同理。

那三个IF函数就生成了包含33个(原始数据11个)单元格的数据,并且满足条件是销售金额,反之为空文本。

Average函数不计算空文本,所以把符合条件的销售金额进行了求均值。

达到了我们的预期目的!

练习文档如下:你可以自己下载研究一下!

链接: https://pan.baidu.com/s/1mjTYkf2 密码: vw7b

总结:数组函数只是实现了虚拟数组构建,如果想要实现数组的应用,需要在生成虚拟数组后外面嵌套一个函数进行运算!

到这里还不是最终极的,终极的是如果原始数据不是石原里美,而是XX石原里美XX这种形式的呢?包含关系如何处理?

鉴于已经很烧脑了,明天再分享!

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2018-01-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区