分享

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

 陪伴感恩遇见 2020-05-06

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

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

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

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

一、单条件求和。

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

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

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的和。

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

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的个数。

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

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的个数。

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

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))

五、文本型数据求和。

求文本型数据的和。

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

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,--,都可以将文本型的数据转成数值型的数据。

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

求数值型数据的和。

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

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多