请 EXCEL 高手帮忙

1 个人 B 2007
2 个人 C 2008
3 公司 B 2006
4 个人 B 2007
如何计算出 满足B列为“个人”,C列为“B”的,D列为“2007”三个条件,A列数值的和。也就是1+4=5
谢谢!

=SUMPRODUCT((B1:B4="个人")*(C1:C4="B")*(D1:D4=2007),A1:A4)
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-17
=SUMPRODUCT(--(B1:B4="个人")*(C1:C4="B")*(D1:D4=2007)*(A1:A4))
第2个回答  2010-07-17
=SUMPRODUCT((B1:B4="个人")*(C1:C4="B")*(D1:D4=2007)*A1:A4))
第3个回答  2010-07-17
=SUMPRODUCT((B:B="个人")*(C:C="B")*(D:D="2007"),A:A)
SUMPRODUCT的用途是“再给定的几组数组中将数组间对应的元素相乘,并返回乘积之和。这个是sumproduct的帮助说明。

SUMPRODUCT(array1,array2,array3, ...) 是标准写法。

=SUMPRODUCT(($A$2:$A$42=$D3)*($B$2:$B$42=E$2))公式中,其实就写了sumproduct的一个参数。即($A$2:$A$42=$D3)*($B$2:$B$42=E$2)作为array1参数。后面的参数都不写了,其实就等于对array1即($A$2:$A$42=$D3)*($B$2:$B$42=E$2)数组求和。

至于为何不写成=SUMPRODUCT(($A$2:$A$42=$D3),($B$2:$B$42=E$2))?这是因为SUMPRODUCT(array1,array2,array3, ...) 帮助里写了很明确一点“函数 SUMPRODUCT 将非数值型的数组元素作为 0 处理。 ”也就是说逻辑判断结果Ture也作为0处理。这个不是我们所希望看到的。

所以使用($A$2:$A$42=$D3)*($B$2:$B$42=E$2),只要逻辑判断值参与了计算,excel就自动将逻辑判断值转换为数字。我们再对数字使用sumproduct就可以了。

注:sumprodcut数组函数在输入后可以不用三键输入。sum也可以实现以上功能,但是需要ctrl+shift+enter三键输入。

注:sumprodcut数组函数在输入后可以不用三键输入。sum也可以实现以上功能,但是需要ctrl+shift+enter三键输入。

=SUMPRODUCT(($A$2:$A$42=$D3),($B$2:$B$42=E$2))可以写成=SUMPRODUCT((0+$A$2:$A$42=$D3),(0+$B$2:$B$42=E$2))

sumproduct会将0+true,1×true的结果强制转为1.
相似回答
大家正在搜