EXCEL2010中SUMPRODUCT函数公式的问题SUMPRODUCT((A4:A7="佛山蓝宝石店")*(B4:B7))和SUMPRODUCT(A4:A7="佛山蓝宝石店",B4:B7)有什么不一样呢?为什么结果不一样?而SUMPRODUCT((B4:B7)*(C4:C7))和SUMPRODUCT(B

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/28 18:20:23

EXCEL2010中SUMPRODUCT函数公式的问题

SUMPRODUCT((A4:A7="佛山蓝宝石店")*(B4:B7))和SUMPRODUCT(A4:A7="佛山蓝宝石店",B4:B7)有什么不一样呢?为什么结果不一样?
而SUMPRODUCT((B4:B7)*(C4:C7))和SUMPRODUCT(B4:B7,C4:C7)结果一样,

A4:A7="佛山蓝宝石店" 产生的是一个逻辑运算结果的数组,由 True 和 False 构成.SUMPRODUCT要求的参数是数值,不能是逻辑值,所以产生错误结果.
如果要把逻辑值转化为可以计算的数值,必须经过一步计算,例如你把 A4:A7="佛山蓝宝石店" 改成 (A4:A7="佛山蓝宝石店" )*1 ,就把TRUE变成了1,FALSE变成了0.这样,满足了SUMPRODUCT的参数要求,就可以得到正确结果了.
(A4:A7="佛山蓝宝石店")*(B4:B7),正是把逻辑值与B4:B7的实际数值进行了一步计算,然后作为SUMPRODUCT的参数,因此能得到正确结果.

前者,(A4:A7="佛山蓝宝石店")是一组逻辑判断,结果为逻辑值,直接用逗号隔开时,逻辑值不参与计算,结果为0。
用乘号时,罗辑值与数值相乘,等于数值,SUMPRODUCT起首求和的作用,结果为符合条件数据的和。
正确写法为第一种(用乘号)。
后者,两个区域都是数值,用乘号是,求对应行乘积的和;用逗号时,函数本身的常规用法,也是求乘积的和。所以,结果相同,两种用法都正确。...

全部展开

前者,(A4:A7="佛山蓝宝石店")是一组逻辑判断,结果为逻辑值,直接用逗号隔开时,逻辑值不参与计算,结果为0。
用乘号时,罗辑值与数值相乘,等于数值,SUMPRODUCT起首求和的作用,结果为符合条件数据的和。
正确写法为第一种(用乘号)。
后者,两个区域都是数值,用乘号是,求对应行乘积的和;用逗号时,函数本身的常规用法,也是求乘积的和。所以,结果相同,两种用法都正确。

收起

A4:A7="佛山蓝宝石店", 生成的结果是TRUE和FLASE,不是数字, SUMPRODUCT 将非数值型的数组元素作为 0 处理,所以SUMPRODUCT(A4:A7="佛山蓝宝石店",B4:B7)的结果为0

你可以将公式改成:=SUMPRODUCT(N(4:A7="佛山蓝宝石店"),B4:B7)

=SUMPRODUCT((A4:A7="佛山蓝宝石店"...

全部展开

A4:A7="佛山蓝宝石店", 生成的结果是TRUE和FLASE,不是数字, SUMPRODUCT 将非数值型的数组元素作为 0 处理,所以SUMPRODUCT(A4:A7="佛山蓝宝石店",B4:B7)的结果为0

你可以将公式改成:=SUMPRODUCT(N(4:A7="佛山蓝宝石店"),B4:B7)

=SUMPRODUCT((A4:A7="佛山蓝宝石店")*B4:B7), 这两组数据是联合运算再求和的,所以能返回正确结果。因为这种运算的时候,TRUE当作1, FLASE当作0

收起