条件SUM在EXCEL中使用多个表

我有一个表,我试图根据两个参考表的值填充。

我有各种不同的项目“1型”,“2型”等,每个项目运行4个月,并根据其生命周期的时间花费不同的金额。 这些成本计算如Ref Table 1所示。

参考表1

 Month | a | b | c | d --------------------------------- Type 1 | 1 | 2 | 3 | 4 Type 2 | 10 | 20 | 30 | 40 Type 3 | 100 | 200 | 300 | 400 

Ref Table 2显示了我未来3个月的项目时间表。 从1月份开始有两个新的,一个是Type 1 ,另一个是Type 2 。 2月份,我会有4个项目,前两个进入他们的第二个月,两个新的开始,但这次是1型和3型。

参考表2

 Date | Jan | Feb | Mar -------------------------- Type 1 | a | b | c Type 1 | | a | b Type 2 | a | b | c Type 2 | | | a Type 3 | | a | b 

我想创build一个表格来计算每个项目types每个月花费的总成本。 Results表格中显示了以下Results示例。

结果

 Date | Jan | Feb | Mar ------------------------------- Type 1 | 1 | 3 | 5 Type 2 | 10 | 20 | 40 Type 3 | 0 | 100 | 200 

我试着用数组公式来做:

 Res!b2 = {sum(if((Res!A2 = Ref2!A2:A6) * (Res!A2 = Ref1!A2:A4) * (Ref2!B2:D6 = Ref1!B1:D1), Ref!B2:E4))} 

然而,它不起作用,我相信这是因为第三个条件试图比较一个向量与另一个向量,而不是一个单一的值。

有没有人有任何想法我可以做到这一点? 很高兴使用数组,索引,匹配,向量,查找但不是VBA。

谢谢

假设结果表头中的月份与参考表2(按照您的示例)的顺序相同,则请在Res!B2中尝试此公式

=SUM(SUMIF(Ref1!$B$1:$E$1,IF(Ref2!$A$2:$A$6=Res!$A2,Ref2!B$2:B$6),INDEX(Ref1!$B$2:$E$4,MATCH(Res!$A2,Ref1!$A$2:$A$4,0),0)))

CTRL+SHIFT+ENTER然后复制下来

这使我得到了与结果表中相同的结果

如果月份可能是不同的顺序,那么你可以添加一些东西来检查 – 我认为结果表格行标签中的types可能与参考表格1的顺序不同,但是如果它们总是以相同的顺序根据你的例子),那么最后的INDEX/MATCH部分可以简化为一个单一的范围