今天一会计网友MM请我为她的表格做一个公式,自动计算一些数据。用到了SUMPRODUCT。
下边将使用方法贴出来共享:
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。
="3"*5
虽然”3”是文本,但该公式能返回结果15。Excel也能将数字转换为文本,例如:
="No" & 1
返回的结果为No1。Excel将逻辑值转换为数值,例如:
=0+TRUE返回的结果为1;
=1*TRUE返回的结果为1。
因此,在公式中添加0强制将逻辑值进行转换?!