Excel教程

Excel函数
Excel技巧

【Excel函数】sumproduct函数的含义及各种用法

当前位置:网站首页 > Excel教程

【Excel函数】sumproduct函数的含义及各种用法

* 来源: 【公众号ID:office196】 * 作者: 【office教程学习】 * 发表时间: 2020-04-13 17:02:34 * 浏览: 73

今天跟大家一起来认识一个很好用的函数:sumproduct函数。

sumproduct函数,sumproduct是由两个英文单词组成,即sum和product。Sum代表求和,product代表乘积,组成的sumproduct就是乘积之和。

现在我们来详细说一下sumproduct函数的含义、语法,以及它的基础应用。

一、sumproduct数介绍

1sumproduct数——含义

Sumproduct函数,在定的几组数组中,把数组间对应的元素相乘,最后返回乘积之和。

2sumproduct数——语法格式

=sumproduct(数组1,数组2,数组3, ……)

数组里面的相应元素进行相乘后,再将乘积求和。

比如:

=SUMPRODUCT({1;2;3;4;5},{1;2;3;4;5})=1*1+2*2+3*3+4*4+5*5=25

注意:数组参数必须具有相同的维数,否则返回错误。意思就是如果第一个数组有5个元素,那么其它数组也必须是5个元素。

当然,也可以这样:

=sumproduct(区域1,区域2,区域3, ……)

比如:=SUMPRODUCT(A1:A3,B1:B3,C1:C3)=A1*B1*C1+A2*B2*C2+A3*B3*C3

同理,要求各个区域的大小和形式是一致。比如区域1是A1:A3,单列3行,那么其它区域也必须是单列3行。

总结:Sumproduct是把每个区域或每个数组对应位置的值相乘,最后再将乘积求和。

二、sumproduct数应用

现在我们要用示例具体来看下sumproduct函数的各种玩法。

以下面一张图为数据源:

现准备统计以下问题:

1、统计表中所有商品总的采购金额。

2、统计表中采购的水果总重量。   

3、统计表中采购的水果总金额。

4、统计表中单价30元以下的水果的采购总金额。

这四个问题归纳一下,第一个问题为简单数组求和;第二、三个问题为单条件求和;第四个问题为多条件求和。

他们用sumproduct函数分别怎么统计?看下面:

1、简单数组求和

统计表中所有商品总的采购金额。

我们平时一般都是分两步,先将单价*重量算出来,然后再用sum函数将结果求和。

如果是用sumproduct函数,一步就直接搞定,

公式为:=SUMPRODUCT(C3:C11,D3:D11)

或者,你也可以把公式里的逗号(,)变乘号(*),即

=SUMPRODUCT(C3:C11*D3:D11)

两个公式结果是一样的。

但是用逗号和用乘号的区别在于:

公式用逗号时,在求和统计时,可以将非数值型的数组元素,当0处理;

公式用乘号时,数组元素就不能存在无法计算的内容,如文本。

2、单条件求和

统计表中采购的水果总重量。

用sumproduct函数表示,即:

公式一:

=SUMPRODUCT((B3:B11="水果")*D3:D11)

公式二:

=SUMPRODUCT(N(B3:B11="水果"),D3:D11)

公式三:

=SUMPRODUCT((B3:B11="水果")*1,D3:D11)

三个公式计算得到的结果都一样,只是写法不一样。

公式中的(B3:B11="水果"),是一个条件,判断区域B3:B11是否等于"水果",结果返回逻辑值true或是false。在这里,这一条件表达式最终运算的结果为:

{FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE}

技巧提示:你在编辑栏中,单独选中这一条件表达式,然后按F9键,就可以看到结果。

那么经过这一步运算后,

公式一得到的是

=SUMPRODUCT({FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE}*D3:D11)

也就是两个数组相乘,此时逻辑值直接参与运算符进行数值计算时,TRUE会自动转化为1,FALSE转化为0,

=SUMPRODUCT({0;1;0;1;1;0;1;0;0}*D3:D11),

将单元格区域D3:D11的数据代入进去,就是:

=SUMPRODUCT({0;1;0;1;1;0;1;0;0}*{20;20;60;40;30;20;10;15;30}),

到这里就明白了,就是两个数组相乘了。

公式二在经过条件表达式那步运算后,得到的是:

=SUMPRODUCT(N{FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE},D3:D11)

那公式二为什么要在条件表达式外面加个N?

这里的N是一个函数,用来将不是数值形式的值转换为数值形式。

因为当sumproduct函数公式里面用的是逗号时,就表示逗号两边是作为独立的参数参与乘积,也就是条件表达式返回的逻辑值就作为独立参数存在了,没有直接参与任何运算符(比如:乘号*)的运算,它是通过sumproduct内部机制进行乘积。上面我们说过sumproduct函数会将非数值型的数组元素,当0处理。

所以条件表达式返回的逻辑值不管是TRUE还是FALSE都会全部被直接当作0对待。

因此,我们才要用N函数来将逻辑值转化为对应的数值1或0。

知道了公式一和公式二的意思后,公式三就不难理解了。

公式三在经过条件表达式那步运算后,得到的是:

=SUMPRODUCT(({FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE})*1,D3:D11)

在条件表达式后面加了*1,也是为了让逻辑值直接参与运算符的运算,将其结果转化为1或0的数组元素。

总结:

我们先把sumproduct函数逗号或乘号前后的数据用A、B来代替,表达为:

=SUMPRODUCT(A,B)和=SUMPRODUCT(A*B)。

当为逗号时,A、B必须同时都是数值或者数组,不能一个是数值,一个是数组;

当为乘号时,A、B可以同时都是数值或者数组,也可以一个是数值一个是数组。

那现在要统计采购的水果总金额,公式怎么写,懂了吧?

直接见下图:

 

3、多条件求和

统计表中单价30元以下的水果的采购总金额。

公式:

=SUMPRODUCT((B3:B11="水果")*(C3:C11<30)*C3:C11*D3:D11)

总结:

SUMPRODUCT多条件统计,不管条件有多少,我们只管在公式里,将条件用括号括起来,再用乘号(*)把各个条件连接起来就行了。

 

今天关于sumproduct函数的基础应用就说到这了。这个函数还有很多其它用法,大家可以去研究一下。下次我们一起来讨论。