Arrays 在EXCEL中使用多个表的条件求和

Arrays 在EXCEL中使用多个表的条件求和,arrays,excel,lookup,Arrays,Excel,Lookup,我有一个基于两个参考表的值填充的表 我有各种不同的项目“类型1”、“类型2”等,每个项目运行4个月,根据其生命周期的不同时间,成本不同。这些成本计算如表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

我有一个基于两个参考表的值填充的表

我有各种不同的项目“类型1”、“类型2”等,每个项目运行4个月,根据其生命周期的不同时间,成本不同。这些成本计算如表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
参考表2
显示了我未来3个月的项目时间表。从1月份开始有两个新的,一个是
类型1
,另一个是
类型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
我想创建一个表,计算每个项目类型每月花费的总成本。下面的
结果
表中显示了示例结果

结果

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(参考1!$B$1:$E$1,如果(参考2!$A$2:$A$6=Res!$A2,参考2!B$2:B$6),索引(参考1!$B$2:$E$4,匹配(Res!$A2,参考1!$A$2:$A$4,0))

CTRL+SHIFT+ENTER确认,然后向下和横向复制

这给了我和你在结果表中得到的结果一样的结果


如果月份的顺序可能不同,那么您也可以添加一些内容来进行检查-我假设结果表行标签中的类型的顺序可能与参考表1的顺序不同,但如果它们的顺序也始终相同(根据您的示例)然后末尾的
索引/匹配
部分可以简化为一个范围

@Barry,非常感谢,这太棒了。我敢肯定我永远不会想到这个。我真的很感谢你的帮助。月份和类型的顺序总是一样的,但我可能会保持索引/匹配以保持健壮性。再次感谢。