SUMPRODUCT函数的使用
参考资源:http://www.exceluser.com
Excel的SUMPRODUCT函数提供Excel数组公式的大多数功能,并且在使用上不复杂。
SUMPRODUCT函数可以方便地计算工作表内多列中对应值相乘后的和,其语法为:
SUMPRODUCT(array1,array2,array3, …)
其中,Array1, array2, array3, … 为 2 到 30 个数组,其相应元素需要进行相乘并求和。数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 该函数将非数值型的数组元素作为 0 处理。
下面通过示例介绍SUMPRODUCT函数的基本使用方法。如下图1所示的工作表:
图1
其中所定义的名称为:
| 名称 | 引用范围 |
| 公司 | =Sheet1!$D$3:$D$17 |
| 全部数据 | =Sheet1!$A$2:$E$17 |
| 日期 | =Sheet1!$A$3:$A$17 |
| 姓名 | =Sheet1!$B$3:$B$17 |
| 性别 | =Sheet1!$C$3:$C$17 |
| 用工数 | =Sheet1!$E$3:$E$17 |
(1)要计算工作表中姓名是张三且公司为A的用工数统计,则可以使用下面的公式:
=SUMPRODUCT(0+(姓名=”张三”),0+(公司=”A”),用工数)
返回结果24。
(2)要获取姓名张三出现的次数,则可以使用下面的公式:
=SUMPRODUCT((姓名=”张三”)*1)
或=SUMPRODUCT(0+(姓名=”张三”))
结果为5。
(3)要获取姓名为张三且公司为A的总数,则可以使用下面的公式:
=SUMPRODUCT((姓名=”张三”)*(公司=”A”)*1)
或=SUMPRODUCT((姓名=”张三”)*(公司=”A”))
结果为4。
![]()
图2
(4)探讨
在计算工作表中姓名是张三且公司为A的用工数统计时,使用的是公式=SUMPRODUCT(0+(姓名=”张三”),0+(公司=”A”),用工数)。按照常规做法,可以使用公式:
=SUMPRODUCT(姓名=”张三”,公司=”A”,用工数)
但其结果为0,即并不是所想要的正确结果24。
- Excel在公式中能将以文本表示的数字转换为数字,例如公式:
=”3”*5
虽然”3”是文本,但该公式能返回结果15。
- Excel也能将数字转换为文本,例如:
=”No” & 1
返回的结果为No1。
- Excel将逻辑值转换为数值,例如:
=0+TRUE返回的结果为1;
=1*TRUE返回的结果为1。
因此,在公式中添加0强制将逻辑值进行转换?!

(2 次投票, 平均: 4 out of 5)
谢雨柔:
不好!对于不是很了解函数的使用方法的人来说,写的还是不够详细。
8 09月 2008, 8:07 amSUMPRODUCT的用法:明白易懂的一个例子:
看一个例子就容易明白SUMPRODUCT的用法:
A B C D (列号)
1 数组1 数组1 数组2 数组2 (第1行)
2 1 2 10 20 (第2行)
3 3 4 30 40 (第3行)
4 5 6 50 60 (第4行)
公式: =SUMPRODUCT(A2:B4, C2:D4)
说明:两个数组的所有元素对应相乘,然后把乘积相加,即 1*10 + 2*20 + 3*30 + 4*40 + 5*50 + 6*60
(结果为910)
1 11月 2008, 4:04 pm