我正在尝试使用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是销售数量。
我做错了什么?这会有用吗?返回的数量不正确。
谢谢,
答案 0 :(得分:0)
SUMPRODUCT将非数字的数组条目视为零。每个sumproducts中的第一个参数将计算为TRUE或FALSE,但它们不是严格的数字。您可以将它们强制转换为数字 - TRUE = 1,FALSE = 0 by:
因此,请将公式更改为:
=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))