如何使用SUMPRODUCT函数?

目录
文章目录隐藏
  1. 函数有哪些典型的用法

今天咱们一起来学习一下 SUMPRODUCT 函数的用法,这个函数从字面来理解,SUM 是求和,PRODUCT 是乘积。综合到一起,就是对各个数组参数计算乘积,并返回乘积之和。

函数有哪些典型的用法

1、计算商品总价

如下图所示,C 列是商品单价,D 列是商品数量,要计算所有商品的总价,可以使用下面这个公式:

=SUMPRODUCT(C2:C12,D2:D12)

计算商品总价

公式把每一行中的单价与数量对应相乘,然后再求和。

计算过程相当于 C2*D2+C3*D3+C4*D4……

本例中,也可以将中间的逗号换成乘号:

=SUMPRODUCT(C2:C12*D2:D12)

那这个乘号和逗号啥区别呢?

当求和区域中有文本的时候,在两个数组之间使用逗号,会把文本当成 0 来处理。要是使用乘号的话,如果求和区域中有文本,就返回错误值了,既然是文本,你让小 S 怎么乘嘛。

但是使用逗号也是有前提条件的,就是两个数组的行、列数必须一样,否则会返回一个错误值。

2、计算指定条件的总价

如下图所示,要计算部门为“大食堂”的所有商品总价,可以使用以下公式:

=SUMPRODUCT((A2:A12="大食堂")*C2:C12*D2:D12)

计算指定条件的总价

这个公式中,先使用(A2:A12=”大食堂”),判断 A 列的部门是不是等于指定的部门,得到一组由 TRUE 和 FALSE 构成的逻辑值。

但是逻辑值不能直接作为数组参数,但是可以参加四则运算,所以咱们用乘号,分别乘以 C 列的单价和 D 列的数量。如果(A2:A12=”大食堂”)这部分的结果里是逻辑值 TRUE,就相当于 1,而逻辑值 FALSE 的作用就相当于是 0。换句话说,符合指定部门的,就用 1*单价*数量,不符合指定部门的就用 0*单价*数量,最后再将各个乘积进行求和。

3、计算指定月份的总金额

如下图,要根据 A 列的日期,计算 2 月份的总金额。

公式为:

=SUMPRODUCT((MONTH(A2:A12)=2)*1,D2:D12,E2:E12)

计算指定月份的总金额

MONTH(A2:A12)=2 部分,先使用 MONTH 函数计算出 A 列日期的月份,然后用等式,判断是不是等于 2,这部分得到的,也是一组由 TRUE 和 FALSE 构成的逻辑值。

接下来把逻辑值乘以 1,TRUE*1 结果为 1,FALSE*1 结果为 0,最终变成由数值 1 和 0 构成的新数组。再用这个新数组作为参数 1,分别与第二参数 D2:D12 和第三参数 E2:E12 相乘,最后计算出乘积之和。

也可以直接把各个参数之间的逗号写成乘号:

=SUMPRODUCT((MONTH(A2:A12)=2)*D2:D12*E2:E12)

4、计算指定月份、指定部门的总金额

如下图,要计算 2 月份大食堂的总金额。

公式为:

=SUMPRODUCT((MONTH(A2:A12)=2)*(B2:B12="大食堂"),D2:D12,E2:E12)

计算指定月份、指定部门的总金额

公式看起来很长,但是和第三个例子是一样的,就是多了一个部门的判断条件(B2:B12=”大食堂”)。

5、根据两个条件计算采购量

如下图,要根据 B1:E1 单元格中的日期和 A2:A12 单元格中的品名,来计算对应的采购量。

公式为:

=SUMPRODUCT((B1:E1=1*"2021-2-2")*(A2:A12="黄瓜")*B2:E12)

根据两个条件计算采购量

这个数据表格和前面几个表格的结构不一样了,两个条件分别在行方向和列方向,对于这种结构的表格,计算时有一个小套路,就是分别对比水平和垂直方向的两个条件,然后乘以数值区域。

这个数值区域的行数,要与垂直方向条件区域的行数一样,并且列数要与水平方向条件区域的列数一样。

上面这句话可能不太好理解,其实结合到数据中,就可以看出来了:

数值区域是 B2:E12,这里的行数是 2~12 行,和(A2:A12=”黄瓜”)的行数是一样的。而列数是 B:E,和(B1:E1=1*”2021-2-2″)的列数是一样的。

另外,在公式中直接写日期的时候,还要注意,先加上一对半角引号,然后再乘以 1 变成日期序列值,否则 Excel 会把 2021-2-2 当成减法了。

6、同一区域设置多个条件

如下图所示,要计算 2 月份白菜和土豆的总采购量。公式为:

=SUMPRODUCT((MONTH(B1:E1)=2)*((A2:A12="白菜")+(A2:A12="土豆"))*B2:E12)

同一区域设置多个条件

(MONTH(B1:E1)=2) 这部分是计算水平方向的月份的。

((A2:A12=”白菜”)+(A2:A12=”土豆”))这部分,用来判断垂直方向的商品名称是不是符合条件。 注意,两个条件之间使用了加号,计算过程咱们就不细说了,作用是表示二个条件符合其一。

7、带通配符的求和

如下图所示,要根据 A 列的手机型号,统计带有“摩托罗拉”字样的手机销量。

公式为:

=SUMPRODUCT(ISNUMBER(FIND("摩托罗拉",A2:A12))*B2:B12*C2:C12)

带通配符的求和

SUMPRODUCT函数的参数中不支持使用通配符,所以在计算带有关键字的问题,就比较吃亏了。

(1)ISNUMBER(FIND(“摩托罗拉”,A2:A12))这部分,先使用 FIND 函数在 A2:A12 数据区域中查找关键字,如果包含关键字,就返回表示关键字位置的数值,否则就返回错误值。

(2)使用ISNUMBER函数判断 FIND 函数的数组结果是不是数值,如果是数值,说明是包含关键字的,如果不是数值,那就是不包含关键字了。

ISNUMBER最终得到由逻辑值 TRUE 或 FALSE 构成的内存数组,然后再与后面的第二参数 B2:B12 和第三参数 C2:C12 依次相乘。最后由SUMPRODUCT返回乘积之和。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 如何使用SUMPRODUCT函数?

发表回复