在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中是标准的