请详细解释以下公式中 (A1:A10="Ford") 和 (B1:B10="June") 的含义以及各自返回的值:
=SUMPRODUCT((A1:A10="福特")*(B1:B10="六月"))
由于在这种情况下实际上从未使用过 C 列,因此使用 ofSUMPRODUCT
实际上与 using 相同SUM
。A1:A10="Ford"
和B1:B10="June"
只返回包含真/假值的数组:
Make Month
True True
True True
True False
True True
False True
False True
False True
False False
False true
在实际公式中,它看起来像:
=SUMPRODUCT({false,true,true,true,true,false,false,false,false,false}*{true,true,true,false,true,true,true,true,false,true})
由于 excel 中的布尔值实际上只是表示为 1 或 0,因此它们最终如下所示:
=SUMPRODUCT({0,1,1,1,1,0,0,0,0,0}*{0,1,1,0,1,1,1,1,0,1})
现在,当您将数组相乘时,就像将矩阵相乘一样:
Make Month
1 x 1 = 1
1 x 1 = 1
1 x 0 = 0
1 x 1 = 1
0 x 1 = 0
0 x 1 = 0
0 x 1 = 0
0 x 0 = 0
0 x 1 = 0
所以最后它看起来像:
=SUMPRODUCT({1,1,0,1,0,0,0,0,0,0})
它返回3
,因为只有一个参数它就像SUM
函数一样工作。
现在我假设您实际上想要SUM
所有Ford
和June
组合的价格,因此您应该使用:
=SUMPRODUCT((A1:A10="Ford")*(B1:B10="June"),(C1:C10))
这实际上将使用该SUMPRODUCT
方法相乘然后将两个数组的乘积相加
(With SUMPRODUCT)
Make Month Price
1 x 1 => 1 x 07,500 = 07,500
1 x 1 => 1 x 08,300 = 08,300
1 x 0 => 0 x 06,873 = 0
1 x 1 => 1 x 11,200 = 11,200
0 x 1 => 0 x 13,000 = 0
0 x 1 => 0 x 14,999 = 0
0 x 1 => 0 x 17,500 = 0
0 x 0 => 0 x 23,500 = 0
0 x 1 => 0 x 18,000 = 0
Total = 27,000
希望这能回答你的问题