美文网首页excel 使用EXCELexcel的一些小技巧教程
万能的SUMPRODUCT函数一个顶仨,不服都不行!

万能的SUMPRODUCT函数一个顶仨,不服都不行!

作者: b04386f0eb2a | 来源:发表于2019-08-10 20:21 被阅读1次

    大家熟悉的EXCEL函数公式肯定包括下面这些:IF函数,VLOOKUP函数,SUM函数等等。它们各有专长,功能都非常强大,且受人追捧。今天要向大家介绍的这个SUMPRODUCT函数,朴实低调,不为大多数人所知,但却同样拥有超强的能力!

    以前有个旧帖子简单介绍过SUMPRODUCT函数的基本语法结构,大家可以参看本是同根生。在很多场合下它可以替代SUM函数、SUMIF函数、COUNT函数和COUNTIF函数等等。

    下面就让我们一同来领略一下它的威力吧!

    01 数据求和

    这里的数据求和我们理解的用SUM函数求和还不太一样。请看下例。

    在单元格A9中输入“=SUMPRODUCT(B2:B5,C2:C5)”即可。

    可以看到,它是把两列数据区域中对应的数据相乘,再求总和。如果是使用SUM函数,需要先算出每一行的销售额,再求和算出总的销售额。

    可以看出,SUMPRODUCT函数一步完成了SUM函数需要两步完成的任务,效率上秒杀SUM函数哦!

    TIPs:如有多列数据,SUMPRODUCT搞得定!只需要添加新的数据区域即可,剩下的事情它会替你做好的!

    02 条件求和

    SUMPRODUCT函数的本领可不仅仅是这些哦。给它一定的条件,它就可以创造奇迹出来!

    下例中求“冰箱”的销售总额。

    在单元格A8中输入“=SUMPRODUCT((A2:A5="冰箱")*(B2:B5)*(C2:C5))”即可。

    思路:

    - A2:A5="冰箱"返回一组新的数据{FALSE;TRUE;TRUE;FALSE},False=0,True=1

    - 三组数组相乘后得到正确的结果

    注意,若将公式改为“=SUMPRODUCT((A2:A5="冰箱")*(B2:B5),(C2:C5))”

    也能得到正确的结果。为什么?

    重点

    SUMPRODUCT函数有两种书写方式:

    =SUMPRODUCT((条件1)*(条件2)*...*(条件n)*(求和区域))

    =SUMPRODUCT((条件1)*(条件2)*...*(条件n),(求和区域))

    此例下上面两种公式的书写方式都可以得到正确的结果。

    但当参数中含有逻辑值时,公式的书写必须用第一种方式;当参数中含有文本数据时,必须使用第二种方式。

    03 条件计数

    SUMPRODUCT函数的第三个大本领就是条件计数。下例中,求某产品出现的次数。

    上面三组公式的原理都是相同的,都是利用的逻辑判断值乘以“1”后转换为“0”和“1”,再进行求和计算。

    TIPs:和COUNTIF函数是高能低效相比,SUMPRODUCT函数更具有效率

    04 模糊条件求和

    EXCEL中有很多函数都是支持模糊查询的。下例中我们也可以在SUMPRODUCT函数中依据模糊条件来求和。

    如何求出所有商品名中含有“冰”字的销售额?

    在单元格A9中输入“=SUMPRODUCT(--ISNUMBER(FIND("冰",A2:A5))*(B2:B5),(C2:C5))”即可。

    思路:

    - 用FIND函数查找含有“冰”字的单元格。若单元格中不含有“冰”字则返回错误值#VALUE!

    - 用ISNUMBER函数判断FIND函数的返回值是否为数字类型,返回值为TRUE或者FALSE

    - 用--来将逻辑值转换为数值

    - 用SUMPRODUCT函数求和

    注意:由于参数中含有文本数据,因此SUMPRODUCT函数在书写时使用第二种方式。

    05 分类汇总求和(一)

    在帖子利用模拟运算表进行【分类汇总】中介绍过利用SUMPRODUCT函数进行分类汇总求和。下面在详细分析一下这个技巧。

    在单元格F2中输入“=SUMPRODUCT((YEAR($A$2:$A$17)=YEAR(F$1))*(MONTH($A$2:$A$17)=MONTH(F$1))*($B$2:$B$17=$E2)*($C$2:$C$17))”并向下向右拖曳即可。

    思路:

    - 利用YEAR函数、MONTH函数分别提取年份和月份的信息,并和分类月份对比判断

    - 利用SUMPRODUCT函数分类求和

    06 分类汇总求和(二)

    下面这个例子,利用SUMPRODUCT函数进行分类汇总也具有一定的代表性。

    在单元格中输入“=SUMPRODUCT((MONTH(A2:A17)=6)*(B2:B17={"东北","西北"})*(D2:D17))”即可。

    思路:

    这里B2:B17={"东北","西北"}通过手动输入区域名称,创建了一个新的数组参与运算

    文章推荐理由:

    SUMPRODUCT函数不是非常“著名”的函数,但是它的功能却不输于SUM函数、SUMIF函数、COUNT函数和COUNTIF函数等等;而且从上可知,它是一个万能函数,可以轻松处理很多问题!

    -END-

    长按下方二维码关注EXCEL应用之家

    面对EXCEL操作问题时不再迷茫无助

    相关文章

      网友评论

        本文标题:万能的SUMPRODUCT函数一个顶仨,不服都不行!

        本文链接:https://www.haomeiwen.com/subject/nkkdjctx.html