编程技术分享平台

网站首页 > 技术教程 正文

SUMPRODUCT函数还有这么多用法,你却只会用它来求和?

xnh888 2024-11-21 23:02:56 技术教程 16 ℃ 0 评论

很多人都以为SUMPRODUCT函数只可以用来求和,其实关于这个函数的用法,大家可能没有深入去了解!今天跟大家分享SUMPRODUCT函数的6个用法!

函数含义:返回相应的数组或区域乘积之和。(默认运算是乘法,但加、减和除也可能)。

函数公式:=SUMPRODUCT(array1,[array2],[array3],…)。

函数解析:array1,array2,array3,...,为数组参数。

一、单条件求和。

求销售额大于等于4000的和。

F4单元格公式:=SUMPRODUCT((D3:D12>=4000)*D3:D12)

公式解析:D3:D12>=4000是一个条件区域,返回的结果是:{FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE},与其它数据发生四则运算时,TRUE相当于1,FALSE相当于0,所以(D3:D12>=4000)*D3:D12返回的结果是:{0;5000;0;4000;6000;8000;5000;0;0;4000},最后用SUMPRODUCT函数将数组中的每个值进行相加,得到结果:32000。

二、多条件求和。

求销售一部销售额大于等于4000的和。

F4单元格公式:=SUMPRODUCT((C3:C12="销售一部")*(D3:D12>=4000)*D3:D12)

或者:=SUMPRODUCT((C3:C12="销售一部")*(D3:D12>=4000),D3:D12)

公式解析:(C3:C12="销售一部")是第一个条件,返回的结果是:{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE},(D3:D12>=4000)是第二个条件区域,返回的结果是:{FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE},(C3:C12="销售一部")*(D3:D12>=4000)返回的结果是:{0;0;0;0;1;0;1;0;0;0},与D3:D12数据区域一一对应相乘,得到结果:{0;0;0;0;6000;0;5000;0;0;0},最后用SUMPRODUCT函数将数组中的每个值进行相加,得到结果:11000。

多条件求和语法模板:

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

或者:

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

三、单条件计数。

求销售额大于等于4000的个数。

F4单元格公式:=SUMPRODUCT(N(D3:D12>=4000))

或者:=SUMPRODUCT((D3:D12>=4000)*1)

或者:=SUMPRODUCT((D3:D12>=4000)/1)

或者:=SUMPRODUCT((D3:D12>=4000)-0)

或者:=SUMPRODUCT((D3:D12>=4000)+0)

或者:=SUMPRODUCT(--(D3:D12>=4000))

公式解析:D3:D12>=4000是一个条件,该条件返回的结果是:{FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE},因为返回的是一组由TRUE和FALSE组成的逻辑值,并不能参与计算,所以使用N函数可以将不是数值形式的值转换为数值形式,将日期转换为序列值,将TRUE转换成1,其他值转换成0。同样也可以用,*1,/1,+0,-0,--,来将不是数值型的数据转成数值型。N(D3:D12>=4000)返回的结果是:{0;1;0;1;1;1;1;0;0;1}。最后用SUMPRODUCT函数将数组中的每个值进行相加,得到结果:6。

四、多条件计数。

求销售一部销售额大于等于3000的个数。

F4单元格公式:=SUMPRODUCT((C3:C12="销售一部")*(D3:D12>=3000))

公式解析:C3:C12="销售一部"是第一个条件区域,此时返回的结果是:{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE},D3:D12>=3000是第二个条件区域,此时返回的结果是:{TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE}。(C3:C12="销售一部")*(D3:D12>=3000)得到的结果是:{1;0;0;0;1;0;1;0;0;0},也就是将数组中的每一个值对应相乘,TRUE*TRUE=1,FALSE*FALSE=0,FALSE*TRUE=0,最后用SUMPRODUCT函数将数组中的每个值进行相加,得到结果:3。

多条件计数公式模板:

=SUMPRODUCT((条件区域1=条件1)*(条件区域2=条件2)*(条件区域N*条件N))

五、文本型数据求和。

求文本型数据的和。

F4单元格公式:=SUMPRODUCT(D5:D9*1)

或者:=SUMPRODUCT(D5:D9/1)

或者:=SUMPRODUCT(D5:D9+0)

或者:=SUMPRODUCT(D5:D9-0)

或者:=SUMPRODUCT(--D5:D9)

公式解析:D5:D9这个单元格区域的数据是文本格式的类型,因为文本格式并不能直接参与数值的运算,所以我们需要将文本型的数据转成数值型的数据。*1,/1,+0,-0,--,都可以将文本型的数据转成数值型的数据。

六、忽略文本型数据求和。

求数值型数据的和。

F4单元格公式:=SUMPRODUCT(D3:D12)。

公式解析:D3:D12单元格区域中,D5:D9单元格区域是文本型的数据(单元格左上角有绿色三角形就是文本格式),当我们用SUMPRODUCT函数进行求和的时候,SUMPRODUCT函数会将非数值型的数组元素作为0来处理。所以D5:D9中的数据求和时,都被作为0,最后的结果就是:17000。

好了,今天就跟大家分享到这里,如果您觉得文章有用,可以转发分享给更多的朋友,希望多多支持,谢谢!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表