分享

写了10多年公式,第一次遇到这种奇葩错误,你能遇到算我输!

 Excel不加班 2020-10-09

昨天文章写了关于SUMIF函数求和出错,有几个粉丝有根据这个提出了一些小疑问,一起来看看。老粉丝重点看最后一个案例。

1.统计人员为李姐、燕子的总数量

多条件也许你的第一反应就是用SUMIFS函数,不过求出来的结果为0,是错误的。

SUMIFS函数的多条件统计,是同时满足的意思,而这里是满足其中一个,相当于AND跟OR的区别。

针对这种,最容易理解的,就是SUMIF+SUMIF。

=SUMIF(B:B,"李姐",A:A)+SUMIF(B:B,"燕子",A:A)


说明:左边的数据截图不完整,下面还有不少这2个人的记录,结果是对的。

如果你喜欢玩技术,公式可以略作改变。将相同的部分合并起来,条件用常量数组的形式,这样统计出来有2个结果,再嵌套SUM函数将2个结果汇总起来。

=SUM(SUMIF(B:B,{"李姐","燕子"},A:A))


当然,人员已经写在了E列,也可以直接引用单元格,不过现在就要执行多重计算,也就是传说中的数组公式。直接使用SUM函数会出错,要换成支持数组的SUMPRODUCT函数。

=SUMPRODUCT(SUMIF(B:B,E2:E3,A:A))


2.统计每个月的总数量

按正常想法,用MONTH函数提取月份,再进行统计,结果却提示此公式有问题。

SUMIF函数的条件比较随意,没啥特别要求,但条件区域、求和区域却不同,会有各种限制。

条件区域这里不支持嵌套函数,除此之外,换成常量数组也不支持。

SUMIF函数家族的SUMIFS、COUNTIFS、COUNTIF,都是同一缺陷。

针对这种,可以用辅助列解决。先用MONTH函数提取月份。

=MONTH(C2)


再引用提取月份的列。

=SUMIF(D:D,E2,A:A)


粉丝的疑问就讲到这里,接下来讲一个国庆期间无意间发现的奇葩错误。

3.奇葩的错误

同一个单元格进行比较,居然结果为1,错得莫名其妙,正确的应该是0。

SUMIF、COUNTIF家族在遇到身份证、通配符的时候会出错,这个我是知道的,这种日期+时间的出错我还是第一次知道。

为此,我换了另外一个函数SUMPRODUCT,发现统计正常。

=SUMPRODUCT((B$2:B2>B2)*1)


最后,在没100%的把握前提下,还是使用SUMPRODUCT函数。又能求和、又能计数,用起来也是超级方便。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多