在Excel中SUMPRODUCT强制

鉴于以下Excel表格:

A1 = 10 A2 = 20 A3 = 30 

我知道/明白为什么SUMPRODUCT( 0+(A1:A3>0) )返回3(3个布尔值由于加法被强制转换为整数)。

为什么SUMPRODUCT( 1+(A1:A3>0) )返回6? (并增加常数给我们一个常数* N + N的结果。

这是Excel的一个logging的function,或者是我偶然发现的一些奇怪的怪异特征?

为了清楚起见,这些公式不是数组公式,而是使用Excel 2003。

该公式返回6,因为在你的例子A1:A3都是> 0所以A1:A3> 0返回这个数组

{TRUE;TRUE;TRUE}当你对TRUE/FALSE值进行某种计算时, TRUE变成1, FALSE变成0,

1+{TRUE;TRUE;TRUE}

你得到

{2;2;2}

哪些SUMPRODUCT总结得到6

你会得到与SUM相同的结果,但“数组input”,即

=SUM(1+(A1:A3>0))

CTRL+SHIFT+ENTER

两者的逻辑和结果是一样的

常量1总是添加到数组中的每个元素 – 这种“数组math”在Excel中是标准的