有一个Excel函数可以将多个值相加,每个值都乘以一个不同的查找值?

时间:2019-07-01 14:42:46

标签: excel excel-formula lookup

我正在设置一个Excel工作簿,该工作簿将实际使用情况作为输入。我希望能够将这些输入与我在表格中输入的已知材料成分相乘。

当前我正在做=使用物料1 * vlookup(物料1,物料表,索引,假)+使用物料2 * vlookup(物料2,物料表,索引,假).....

enter image description here

考虑到我有大量的材料用法,是否有更简单的方法来做到这一点?我真的想避免在同一单元格中重复最多重复30次相同的公式,只是为了将它们加起来。

我想要一个公式,该公式将自动乘以材料使用量*查找成分,并对所有输入的材料求和该公式。

2 个答案:

答案 0 :(得分:4)

这是另一种方式...

=SUMPRODUCT(SUMIF(F6:F8,A6:C6,G6:G8),A7:C7)

...仅需按Enter即可确认。

希望这会有所帮助!

答案 1 :(得分:2)

快速但有点复杂的解决方案:

{=SUM(INDEX(G1:G4,N(IF(1,MATCH(A1:A5000,F1:F4,0))))*B1:B5000)}

另一种解决方案:

{=SUM(LOOKUP(A1:A5000,F1:F4,G1:G4)*B1:B5000)}

如注释中所述:查找表必须按升序排序。另外,如果查找值不存在匹配项,则会找到一个近似匹配项,这可能不是期望的结果。

enter image description here

具有5000次执行公式的速度测试:

{=SUM(LOOKUP(A1:A5000,F1:F4,G1:G4)*B1:B5000)}

5.237412秒已过去| 16,325,977滴答声过去了

{=SUM(INDEX(G1:G4,N(IF(1,MATCH(A1:A5000,F1:F4,0))))*B1:B5000)}

7.941025秒已过|经过24,753,637滴答滴答声

=SUMPRODUCT(SUMIF(F1:F4,A1:A5000,G1:G4),B1:B5000)

12.338439秒已过去| 38,461,185 cks虫消失了