给出以下Excel表格:
A1 = 10
A2 = 20
A3 = 30
我知道/理解为什么SUMPRODUCT( 0+(A1:A3>0) )
返回3(由于添加,3个布尔值被强制转换为整数)。
为什么SUMPRODUCT( 1+(A1:A3>0) )
会返回6? (并且增加常数会得到Constant * N + N的结果。
这是Excel的记录功能,还是我偶然发现的一些奇怪的怪事?
为了清楚起见,这些公式不是数组公式,我使用的是Excel 2003。
答案 0 :(得分:4)
该公式返回6,因为在您的示例中A1:A3都是> 0所以A1:A3> 0返回此数组
{TRUE;TRUE;TRUE}
当您对TRUE/FALSE
值进行某种计算时TRUE
变为1,FALSE
变为零,所以
1+{TRUE;TRUE;TRUE}
你得到了
{2;2;2}
SUMPRODUCT
总和得到6
您可以使用SUM
获得相同的结果,但输入的数字为#34;"即。
=SUM(1+(A1:A3>0))
通过CTRL+SHIFT+ENTER
两者的逻辑和结果相同
常量1总是被添加到数组中的每个元素 - 那种"数组数学"是excel中的标准