Sumproduct Excel一个条件两列乘以加法

时间:2016-11-18 21:15:50

标签: excel

我正在尝试使用excel来计算每月使用物料清单(BOM)中的多少组件。

所以我有几列组件,但组件可以出现在多个列中。这些列的偏移量是BOM中该组件的数量,另一列中的数量是销售数量。 SUMPRODUCT是否使用正确的公式?

我试过了:

=sum(sumproduct((B2:B10="Component1")*(L2:L10)*(AH2:AH10)), sumproduct((C2:C10="Component1")*(M2:M10)*(AH2:AH10)))

B和C列包含组件代码,L和M是每个BOM的组件数量,AH是销售数量。

我做错了什么?这会有用吗?返回的数量不正确。

谢谢,

2 个答案:

答案 0 :(得分:0)

SUMPRODUCT将非数字的数组条目视为零。每个sumproducts中的第一个参数将计算为TRUE或FALSE,但它们不是严格的数字。您可以将它们强制转换为数字 - TRUE = 1,FALSE = 0 by:

  • 乘以双重否定
  • 乘以1或
  • 添加0

因此,请将公式更改为:

=SUM(SUMPRODUCT(--(B2:B10="Component1")*(L2:L10)*(AH2:AH10)),
SUMPRODUCT(--(C2:C10="Component1")*(M2:M10)*(AH2:AH10)))

答案 1 :(得分:0)

在SUMPRODUCT中,您应该使用逗号或分号,具体取决于您的语言环境,以分隔正在相乘的数组而不是使用乘法运算符(*)。

=SUM(SUMPRODUCT(--($B$2:$B$10="Component1"),$M$2:$M$10,$AH$2:$AH$10),SUMPRODUCT(--($B$2:$B$10="Component1"),$L$2:$L$10,$AH$2:$AH$10))

因为($ B $ 2:$ B $ 10 =" Component1")评估为TRUE&数组。 FALSE,您使用 - 将其转换为1或0.您还可以将其乘以1.

=SUM(SUMPRODUCT(1*($B$2:$B$10="Component1"),$M$2:$M$10,$AH$2:$AH$10),SUMPRODUCT(1*($B$2:$B$10="Component1"),$L$2:$L$10,$AH$2:$AH$10))