0

请详细解释以下公式中 (A1:A10="Ford") 和 (B1:B10="June") 的含义以及各自返回的值:

=SUMPRODUCT((A1:A10="福特")*(B1:B10="六月"))

在此处输入图像描述

4

1 回答 1

3

由于在这种情况下实际上从未使用过 C 列,因此使用 ofSUMPRODUCT实际上与 using 相同SUMA1: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所有FordJune组合的价格,因此您应该使用:

=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

希望这能回答你的问题

于 2013-08-05T21:31:28.800 回答