一个万能的函数,sumproduct

函数SUMPRODUCT是一个集计数与求和于一身的函数,数组公式中函数SUMPRODUCT能取代函数SUM且不用按<Ctrl+Shift+Enter>三键结束。

函数定义:

在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。

语法格式:

SUMPRODUCT(array1, [array2], [array3], ...)

array1:必需。其相应元素需要进行相乘并求和的第一个数组参数。

array2, array3,...:可选。2 到 255 个数组参数,其相应元素需要进行相乘并求和。

1、忽略文本求和

输入公式:

=SUMPRODUCT(A2:A10)

函数SUMPRODUCT将非数值型的数组元素作为0处理。

公式就是SUMPRODUCT({1;0;2;0;3;0;0;0;5}),即返回11

2、文本型数值求和

输入公式:

=SUMPRODUCT(B2:B9*1)

B2:B9单元格数值是文本型,*1是将文本型数值转换成数值型

可以用“--”、“+0”、“-0”、 “/1”、“^1”等等来转换

3、单条件计数

求业绩大于等于5000的个数:

输入公式:

=SUMPRODUCT(N(B2:B9>=5000))

B2:B9>=5000部分返回{FALSE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE}

条件成立返回逻辑值TRUE,条件不成立返回逻辑值FALSE

函数N:将不是数值形式的值转换为数值形式。日期转换为序列值,TRUE转换成1,其他值转换成0。

同样的,也可以用“--”、“+0”、“-0”、 “/1”、“^1”、“*1”等等来转换

N(B2:B9>=5000)部分返回{0;1;1;0;0;1;1;0}

用函数SUMPRODUCT求和返回4

4、单条件求和

求业绩大于等于5000的和:

输入公式:

=SUMPRODUCT((B2:B9>=5000)*B2:B9)

(B2:B9>=5000)部分返回{FALSE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE}

发生四则运算时,TRUE相当于1,FALSE相当于0

(B2:B9>=5000)*B2:B9部分返回{0;7800;6521;0;0;16660;8054;0}

用函数SUMPRODUCT求和返回39035

5、多条件计数

求销售一部业绩大于等于5000的个数:

输入公式:

=SUMPRODUCT((B2:B9='销售一部')*(C2:C9>=5000))

多条件计数语法:

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

6、多条件求和

求销售一部业绩大于等于5000的和:

输入公式:

=SUMPRODUCT((B2:B9='销售一部')*(C2:C9>=5000)*C2:C9)

多条件求和语法:

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

或者:

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

该题也可以用公式:

=SUMPRODUCT((B2:B9='销售一部')*(C2:C9>=5000),C2:C9)

多条件求和语法中求和条件前使用“*”与“,”的区别:

当求和区域中没有文本时,“*”与“,”可以互相通用;

当求和区域中有文本时使用“,”,若使用“*”会返回错误值#VALUE!

7、单条件计算不重复个数

求业务员不重复的个数:

输入公式:

=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))

COUNTIF(A2:A9,A2:A9)部分统计区域A2:A9中每个单元格内容在该区域中出现的次数,返回{2;1;2;3;1;1;3;3}

1/{2;1;2;3;1;1;3;3}是将重复数据算作1,比如出现2次的是1/2,出现3次的是1/3,

1/COUNTIF(A2:A9,A2:A9)部分返回

{0.5;1;0.5;0.333333333333333;1;1;0.333333333333333;0.333333333333333}

用函数SUMPRODUCT求和返回5

8、区间求和

求业绩大于等于5000、小于15000的和:

输入公式:

=SUMPRODUCT((B2:B9>=5000)*(B2:B9<15000)*B2:B9)

或者:

=SUMPRODUCT((B2:B9>=5000)*(B2:B9<15000),B2:B9)

9、隔列求和

求入库、出库合计:

输入公式:

=SUMPRODUCT(($B$2:$G$2=H$2)*$B3:$G3),右拉下拉填充。

10、数组相乘

求总提成:

输入公式:

=SUMPRODUCT(B2:B9*C2:C9)

B2:B9*C2:C9返回每个业绩*对应提成比例,即返回{45.06;390;326.05;136.89;2001.5;1466;402.7;138.75}

然后用函数SUMPRODUCT求和

11、有条件的数组相乘

求“销售一部”的总提成:

输入公式:

=SUMPRODUCT((A2:A9='销售一部')*C2:C9*D2:D9)

(A2:A9='销售一部')条件成立返回TRUE,条件不成立返回FALSE,即{TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE}

然后*C2:C9返回的是销售一部的业绩,即{1502;7800;0;0;20015;14660;0;4625}

再*D2:D9返回的就是销售一部对应的提成,即{45.06;390;0;0;2001.5;1466;0;138.75}

最后用函数SUMPRODUCT求和

12、带'~'求和

求业务员中有带“~”的业绩和:

输入公式:

=SUMPRODUCT(ISNUMBER(FIND('~',B2:B9))*C2:C9)

函数SUMPRODUCT不能使用通配符,但可以与函数FIND相结合完成对应功能

FIND('~',B2:B9)部分找到“~”在各业务员字符串中的位置,没有“~”返回错误值#VALUE!,该部分返回{2;#VALUE!;3;#VALUE!;#VALUE!;1;#VALUE!;#VALUE!}

函数ISNUMBER:判断一个值是否为数值,返回TRUE或FALSE。

ISNUMBER(FIND('~',B2:B9))部分返回{TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE}

再*C2:C9返回带“~”的各业务员的业绩{1502;0;6521;0;0;14660;0;0}

最后用函数SUMPRODUCT求和。

(0)

相关推荐