不一致的SUMPRODUCT返回值

时间:2015-04-16 17:48:26

标签: excel excel-formula

这到底是怎么回事?这是一个错误吗?

在下面的示例中,此公式旨在计算不是由塑料制成的苹果数量。

=SUMPRODUCT(--(B4=IF(NOT($C$4:$C$11),$B$4:$B$11)))

它应该返回1.为什么它会返回2?

enter image description here

当我使用 F9 手动评估SUMPRODUCT内的数组时,我可以看到那里只有一个1;当我按 Enter 时,它返回1,这是我从一开始就预期的。

enter image description here

enter image description here

最好的部分:如果我将完全相同的原始公式复制到其他单元格(未拖动 - 它具有完全相同的单元格引用),则它返回0或#VALUE!错误。为什么结果会改变?

enter image description here

为您的复制粘贴乐趣测试数据:

Fruit   Made of plastic
apple   FALSE
banana  FALSE
plum    FALSE
pear    TRUE
apple   TRUE
banana  FALSE
plum    TRUE
pear    TRUE

4 个答案:

答案 0 :(得分:1)

请尝试使用COUNTIFS功能,因为您尝试根据多个条件进行计数:

=COUNTIFS(B:B, B4, C:C, False)

答案 1 :(得分:1)

实际上你的公式中的一切都没问题。您只需要按 ctrl + shift + 输入 来计算公式。 当您按 输入 时,它不会考虑公式是基于数组的。

当您使用 F9 评估公式时 ,它知道数组是一个数组,这就是为什么你看到评估公式中的花括号,然后当你按 输入 时,因为数组部分已使用 F9 计算为数组,然后重新 1

但是如果你从头开始按输入,没有任何评价,那么它将返回两个!这就是为什么。

将公式复制到另一个单元格时的情况相同。还有,你需要按 ctrl + shift + 输入 来计算数组公式。

答案 2 :(得分:1)

我有一个理论 - 它只不过是(但不符合评论) - 其根本原因是IF的短路性质。

取第一个apple - 它与FALSE相关联,因此计数1.列表中是否还有另一个FALSE?是的,列表中还有另一个apple吗?也是,所以加1,结果2 采取第一个banana - 如上所述,结果2 取第一个plum - 如上所述,结果2.
取第一个pear - 它与TRUE相关联,因此计数0 - 并停止计数 取第二个apple - 它与TRUE相关联,因此计数0 - 并停止计数 取第二个banana - 它与FALSE相关联,因此计数1.列表中是否还有另一个FALSE?是的,列表中还有另一个banana吗?也是,所以加1,结果2 取第二个plum - 它与TRUE相关联,因此计数0 - 并停止计数 取第二个pear - 它与TRUE相关联,因此计数0 - 并停止计数。

但是这与暗示拦截相结合 - 它只适用于在Row4中的B4。

  

这是一个错误吗?

我认为可以说,不是一个错误。

  

为什么回归2?

也许以上是解释(我没有测试过!)

  

这到底是怎么回事?

如果不访问Microsoft的代码,可能无法详细回答?

答案 3 :(得分:0)

这有效:

=SUMPRODUCT(($B$4:$B$11=B4)*NOT($C$4:$C$11))

不需要输入数组公式。

相关问题