admin管理员组

文章数量:1530844

2023年12月19日发(作者:)

SUMPRODUT函数(作用:多条件计数和求和)

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

语法:SUMPRODUCT(array1,array2,array3…)

Array1,array2,array3,…为2到30个数组,其相应元素需要进行相乘并求和。

说明:

1、 数组参数必须具有相同的维数,否则,函数SUMPRODUCT将返回错误值#VALUE。

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

示例:如果将示例复制到空白工作表中,可能会更易于理解该示例。

B C D E

Array1 Array1

Array2

Array2

3 4 2 7

8 6 6 7

1 9 5 3

公式

1

2

3

4

说明(结果)

两个数组的所有元素对应相乘,然后把乘积=SUMPRODUCT(B2:C4,D2:E4)

相加,即3*2+4*7+8*6+6*7+1*5+9*3(156)

数学函数SUMPRODUCT应用实例

一、 基本功能

1、 函数SUMPRODUCT的功能返回相应的区域或数组乘积的和。

2、 基本格式SUMPRODUCT(数据1,数据2,……,数据30)

3、 基本计算

数据表

A B C D E

1

2 2 3 4 12 10

3 5 5 6 5 20

4 9 7 8 #N/A 30

5 7 2 7 9 KL

6 1 6 2 8 2

a) 区域计算要求:计算A、B、C三列对应数据乘积的和。公式:

=SUMPRODUCT(A2:A6,B2:B6,C2:C6)=A2*B2*C2+A3*B3*C3+A4*B4*C4+A5*B5*C5+A6*B6*C6

=788

即三个区域A2:A6,B2:B6,C2:C6同行数据积的和。返回值788。

b) 数组计算要求:把上面数据表中的三个区域A2:A6,B2:B6,C2:C6数据按一个区域一个数组,计算对应数组积的和。把A2:A6,B2:B6,C2:C6分别作为一个数组,即

A2:A6表示为数组{2;5;9;7;1}

B2:B6表示为数组{3;5;7;2;6}

C2:C6表示为数组{4;6;8;7;2}:

公式:

=SUMPRODUCT({2;5;9;7;1},{3;5;7;2;6},{4;6;8;7;2})=788

注意:数组数据用大括号{ }括起来。行数据之间用分号“;”分隔,如果是同一行的数据,用逗号“,”分隔。

4、 可能出现的错误

a) 编辑公式时,引用的数据区域大小不一致导致计算错误,返回值为#VALUE!。示例:在上面的数据集中,计算A列与B列数据区域积的和。公式:

=SUMPRODUCT(A2:A6,B2:B5)

=SUMPRODUCT(A2:A6,B2:B8)都会返回错误值#VALUE!所以在用SUMPRODUCT函数时,引用的数据区域大小要一致。

b) 数据区域中有错误值时,计算出现错误值。示例,在上面的数据表中,计算数据区域A2:A6与D2:D6对应积的和。公式:=SUMPRODUCT(A2:A6,D2:D6)

因为D2:D6中有错误值#N/A,所以公式返回值为错误值#N/A。

c) 数据区域引用不能整列引用。示例:计算上面数据表中A2:A6和B2:B6区域对应数据积的和,正确公式为=SUMPRODUCT(A2:A6,B2:B6)则返回正确的计算值94。如果用公式=SUMPRODUCT(A:A,B:B)则返回错误值#NUM!。

d)

数据区域有文本,计算中系统默认文本值为0。示例:在上面数据表中,计算A2:A6和E2:E6区域中对应数据积的和。公式=SUMPRODUCT(A2:A6,E2:E6)返回值是392,其中E5是文本KL,则A5*E5=0。

二、 用于多条件计算用数学函数SUMPRODUCT计算符合2个及以上条件的数据个数

1、数据表如下数据表所示:

A B C

1

姓名 性别 职称

2 A

男 中一

3 B

女 中二

4 C

女 中一

5 D

男 中一

6 E

女 中一

7 F

男 中二

8 G

女 中二

9 H

男 中一

10 I

男 中一

11 J

女 中一

统计表E列、F列、G列中一、中二男女。要求:统计上面数据表中男、女性分别是中一、中二的人数。如下图片,A1:C11数据区域,在E1:G3区域统计男女中中一和中二的人数是多少。

公式在数据统计区域中的F2单元格,编辑如下公式:=SUMPRODUCT

(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))向下复制到F2,向右复制到G3。

2、公式分解及分析

a) 条件1:$B$2:$B$11=$E2。在计算过程中,条件1是一个数组,写成公式如下:=$B$2:$B$11=$E2。具体操作:选中10个连续的单元格,输入上述公式后,按Ctrl+Shift+Enter确定,返回10个逻辑判断值:TRUE、FALSE、FALSE、TRUE、FALSE 、TRUE、FALSE、TRUE、TRUE、FALSE。这10个逻辑判断值构成一个新的由TRUE和FALSE组成的数组1。

b) 条件2:$C$2:$C$11=F$1与条件1相同,是一个数组,返回多值,写成公式如下:=$C$2:$C$11=F$1。具体操作:同样的方法,选中对应的10个连续的单元格,输入上述公式,按Ctrl+Shift+Enter确定。返回10个逻辑判断值:TRUE、FALSE、TRUE、TRUE、TRUE、FALSE、FALSE、TRUE、TRUE、TRUE。这10个逻辑判断值构成另一个新的由TRUE和FALSE组成的数组2。

c) ($B$2:$B$11=$E2)*($C$2:$C$11=F$1)由新构成的数组1乘以数组2,即:=($B$2:$B$11=$E2)*($C$2:$C$11=F$1)

={数组1*数组2}

={ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*{ TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE;TRUE;TRUE }

={TRUE*TRUE;FALSE*FALSE;FALSE*TRUE;TRUE*TRUE;FALSE*TRUE;TRUE*FALSE;FALSE*FALSE;TRUE*TRUE;TRUE*TRUE;FALSE*TRUE}

={1;0;0;1;0;0;0;1;1;0}

其中逻辑值TRUE与FALSE参与计算时TRUE=1,FALSE=0,TRUE*TRUE=1,TRUE*FALSE=FALSE*TRUE=0,FALSE*FALSE=0。因此,{数组1}*{数组2}={1;0;0;1;0;0;0;1;1;0}由1和0构成了一个新的数组3。

d) 函数SUMPRODUCT对新的数组3中的所有数据求和。即:

=SUMPRODUCT(($B$2:$B$11=$E2)*( $C$2:$C$11=F$1))

=SUMPRODUCT({数组1*数组2})

= SUMPRODUCT({数组3})

=SUMPRODUCT({1;0;0;1;0;0;0;1;1;0})

=4

这里需要说明的是,公式编辑按照函数SUMPRODUCT的一般格式,可以编辑如下等效的公式:

=SUMPRODUCT (($B$2:$B$11=$E2)*1, ( $C$2:$C$11=F$1)*1)

函数SUMPRODUCT的作用是对数组($B$2:$B$11=$E2)与数组( $C$2:$C$11=F$1)计算其乘积的和,即:

=SUMPRODUCT (($B$2:$B$11=$E2)*1, ( $C$2:$C$11=F$1)*1)

=SUMPRODUCT({ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;T

RUE;FALSE }*1, { TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;

FALSE;TRUE;TRUE;TRUE }*1)

=SUMPRODUCT({1;0;0;1;0;1;0;1;1;0},{1;0;1;1;1;0;0;1;1;1})

=SUMPRODUCT ({1*1;0*0;0*1;1*1;0*0;0*1;1*1;1*1;0*1})

=SUMPRODUCT({1;0;0;1;0;0;0;1;1;0})

=4

注意:数组中用分号分隔,表示数组是一列数组,分号相当于换行。两个数组相乘是同一行的对应两个数相乘。

三、用于多条件求和对于计算符合某一个条件的数据求和,可以用SUMIF函数来解决。如果要计算符合2个以上条件的数据求和,用SUMIF函数就不能够完成了。这就可以用函数SUMPRODUCT。

用函数SUMPRODUCT计算符合多个条件的数据和,其基本格式是:SUMPRODUCT(条件1*条件2……,求和数据区域)

数据表

A B C D

1

姓名 性别 职称 课时

2 A 15

男 中一

3 B 16

女 中二

4 C 14

女 中一

5 D 13

男 中一

6 E 18

女 中一

7 F 15

男 中二

8 G 16

女 中二

9 H 14

男 中一

10 I 17

男 中一

11 J 18

女 中一

要求:计算男、女分别是中一或中二的总课时数。

统计表F列、G列、H列,中一、中二男女在G2中编辑公式:

=SUMJPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11)

回车确认后向下向右复制公式到H3单元格。

公式释义:性别区域$B$2:$B$11中满足条件“男”和职称区域$C$2:$C$11中满足条件“中一”的数据,通过判断计算后由1和0组成一个新的数据区域,这个新的数据区域再和课时区域$D$2:$D$11中的对应数据相乘后求和。

公式对比,到此,对函数SUMPRODUCT用来计数和求和,试作一对比:

计数公式=SUMPRODUCT(9$B$2:$B$11=$E2)*($C$2:$C$11=F$1))

求和公式=SUMPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11)

不难看出,求和公式在原来的计数公式中,在相同判断条件下,增加了一个求和的数据区域。也就是说,用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,另一个是用来求和的数据区域。

综上所述,对于多条件的计数或者求和,可以用数学函数SUMPRODUCT来比较方便解决。在使用函数时,进行数据引用的单元格区域或数组应该大小一致,不能采取整列引用(形如A:A)。如果跨表使用函数SUMPRODUCT,与其他函数跨表引用数据一样,数据区域前面应该标明工作表名称。计数公式中最关键的是确定计数的判断条件。求和公式在原来的计数公式中,在相同判断条件下增加一个求和的数据区域。用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,一个是用来求和的数据区域。

SUMIF、COUNTIF和SUMPRODUCT函数在成绩统计中的应用

在学校组织的学年考试考务中作中,为了便于评卷实行流水作业和避免学生作弊,经常将同一年级不同班级的学生拆散混编。在考试登分完毕之后,如何做到不改变原始表格的状态而进行分班成绩统计呢?利用SUMIF、COUNTIF和SUMPRODUCT这三个函数,一切都将会变得十分轻松。下面举例说明。

一、造册登分

登分册一般有班级、考号、姓名及语文、数学等学科名称,我们可以把这个工作表建立在sheet1,并将其重命名为“登分册”,将学生成绩输入其中(见图一)。将sheet2命名为“统计表”,在其中设置好班级、科目、平均分,及格人数、及格率、优生率、优生人数、优生率等统计信息列标题,输入班级和需要统计的科目内容(见图二)。

A B C D E

1

班级 考号 姓名 语文 数学

2

一(1)

1 75 70

3

一(2)

2 91 65

4

一(3)

3 66 90

5

一(1)

4 78 78

6

一(2)

5 79 95

7

一(3)

6 80 98

8

一(1)

7 76 84

9

一(2)

8 82 59

10

一(3)

9 56 78

11

一(1)

10 84 79

12

一(2)

11 92 66

13

一(3)

12 86 81

登分册(图一)

A B C D E F G H

1

班级 科目 总分 平均分 及格人数 及格率 优生人数 优生率

2

一(1)

语文

3

一(2)

语文

4

一(3)

语文

5

一(1)

数学

6

一(2)

数学

7

一(3)

数学

统计表(图二)

二、建立函数

在“统计表”中的C2单元格输入数组公式=SUMIF(登分册!$A$2:A$13,”一(1)”,登分册!$D$2:D$13),按住Ctrl和Shift键回车可以计算出一(1)班的总分,将公式向下复制到各单元格,并将其中的“一(1)”班分别改为相应班级名称。这个数组公式的含义是:在“登分册”工作表中查找“一(1)”班对应的成绩,并返回一(1)班所有成绩之和。见图三。

A B C D E F G H

1

班级 科目 总分 平均分 及格人数 及格率 优生人数 优生率

2

一313

(1) 语文

3

一344

(2) 语文

4

一288

(3) 语文

5

一311

(1) 数学

6

一285

(2) 数学

7

一347

(3) 数学

图三

在“统计表”D2单元格输入公式=ROUND(C2/COUNTIF(登分册!$A$2:A$13,统计表!A2),2)计算出一(1)班的平均分,向下拖动复制公式到相应单元格。该公式的含义是:将C2中的总分除以“登分册”A列中与A2显示的值(一(1)班)相同的人数,并保留两位小数。

在E2中输入数组公式计算及格人数。该数组函数为=SUMPRODUCT((登分册!$A$2:A$13=统计表!$A2)*(登分册!$D$2:D$13>=60)),其含义是:若“登分册”工作表A列中有与“统计表”A2相同的信息,即“一(1)班”则返回与“一(1)班”相对应的成绩中大于或等于60分的人数(如图四),将公式向下复制后,在F2单元格中输入公式=E2/COUNTIF(登分册!$A$2:A$13,统计表!$A2)计算该班的及格率。

A B C D E F G H

1

班级 科目 总分 平均分 及格人数 及格率 优生人数 优生率

2

一313 78.25 4

(1) 语文

3

一344 86 4

(2) 语文

4

一288 72 3

(3) 语文

5

一311 77.75 4

(1) 数学

6

一285 71.25 4

(2) 数学

7

一347 86.25 3

(3) 数学

图四

将E列中的公式复制到G列,并将公式“>=60”修改成学校规定的优等生标准(如是80分为优生,则将60分改为80即可)(见图五)。同理,将F列中的公式复制到H列即可得到优生率的统计结果。

A B C D E F G H

1

班级 科目 总分 平均分 及格人数 及格率 优生人数 优生率

2

一313 78.25 4 100.00% 3 25.00%

(1) 语文

3

一344 86 4 100.00% 3 75.00%

(2) 语文

4

一288 72 3 75.00% 2 50.00%

(3) 语文

5

一311 77.75 4 100.00% 3 25.00%

(1) 数学

6

一285 71.25 4 100.00% 3 75.00%

(2) 数学

7

一347 86.25 3 75.00% 2 50.00%

(3) 数学

需要提醒大家的是,使用数组函数,一定不要忘记是Ctrl+Shift+Enter。

Excel里SUMPRODUCT函数能用文字解释给我听吗?

=SUMPRODUCT((B2=成本!$B$2:$B$10000)*(成本!$C$2:$C$10000=销售!C2)*成本!$E$2: $E$10000)

=SUMPRODUCT((B2=成本!$B$2:$B$10000),(成本!$C$2:$C$10000=销售!C2),(成本!$E$2:$E$10000))

和有什么区别,为什么前者正确,后者错误?

分段解释:

a) 成本!$B$2:$B$10000中的单元格逐个与B2进行比较,返回TRUE或FALSE(还不是1或0)。

b) 成本!$C$2:$C$10000中的单元格逐个与销售!C2进行比较,返回TRUE或FALSE(还不是1或0)。

c) 成本!$E$2: $E$10000中的每个单元格存在一个数值。

中,可写成a)*b)*c)=d。首先,a)和b)中的参数TRUE和FALSE参与四则运算,TRUE和FALSE被转换为1和0。然后再与c)中的数值进行运算,运算结果作为SUMPRODUCT的参数进行下一步运算。

=sumproduct(a),b),c)),其中a)和b)中的TRUE和FALSE直接作为sumproduct的参数直接进行运算。但是对于sumproduct函数而言,除了数值能作为参数,其他数据类型(除错误值外)作为参数时都作0。所以,的结果为0。

如何修改?

只要将TRUE和FALSE转化为数值1和0。也就是说只要让它参与四则运算。例如:

方法一、=SUMPRODUCT((--B2=成本!$B$2:$B$10000),(--成本!$C$2:$C$10000=销售!C2),(成本!$E$2:$E$10000))

方法二、=SUMPRODUCT((B2=成本!$B$2:$B$10000)*1,(成本!$C$2:$C$10000=销售!C2)*1,(成本!$E$2:$E$10000))

Excel里面的SUMPRODUCT函数的完整用法?“--”是什么意思?

以下几个写法有什么区别,搞不清楚“--”和“*”的区别?

1) =SUMPRODUCT((A1:A100=”男”)*(B1:B100=”本科”))

2) =SUMPRODUCT((A1:A100=”男”),(B1:B100=”本科”))

3) =SUMPRODUCT(--(A1:A100=”男”),--(B1:B100=”本科”))

4) =SUMPRODUCT(--(A1:A100=”男”)*--(B1:B100=”本科”))

要计算男性本科学历的人数,到底哪个是正确的公式,--到底是什么意思?另外,是不是=SUMPRODUCT(条件1*条件2)用来求符合条件的个数,而=SUMPRODUCT(条件1*条件2,数值区域3),用来求符合条件1、2的区域3的和。

答:以上四个公式中,只有第二个公式是错误的,其他公式中的”--”和”*”的目的就是要把逻辑值TRUE和FALSE转换为1和0。而为什么要转化为1和0,前面已经说过,这儿不再赘述。

SUMPRODUCT函数用法与示例

第一部分:SUMPRODUCT函数用法介绍

Excel中SUMPRODUCT函数是一个数组型的函数,SUMPRODUCT函数能够计算多个区域的数值相乘之和。

SUMPRODUCT函数的语法为:SUMPRODUCT(数组1,数组2,数组3….)

使用SUMPRODUCT函数有两点需要注意:

第一:在SUMPRODUCT函数的参数中,数组的大小必须相等,否则将返回#N/M!错误。

第二:SUMPRODUCT函数将数组中不是数字的数组元素作为0对待。

第二部分:SUMPRODUCT函数实例

实例:计算6月份总销售额

实例详见下图:

A B C D E F G

1

2010年6月产品销售报表

2

序号 产品 数量 单价

3 1

微波炉

45 599 26955

4 2

电磁炉

45 2589 116505

5 3

计算机

65 1380 89700

6 4

电磁炉

64 4589 293696

总销售金额

1136622

7 5

微波炉

456 298 135888

8 6

计算机

54 2007 108378

9 7

微波炉

43 8500 365500

选中G6单元格,输入公式:=SUMPRODUCT(C3:C9,D3:D9),即可求出所有产品的

本文标签: 数组函数数据公式计算