我有一个表,我试图根据两个参考表的值来填充该表。
我有各种不同的项目“类型 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 个月的项目时间表。一月份开始有 2 个新项目,其中一个是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
我想创建一个表来计算每个项目类型每月花费的总成本。示例结果如下所示Results
table.
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。
Thanks
假设结果表标题中的月份与参考表 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
并向下和横向复制
这给了我与你在结果表中得到的结果相同的结果
如果月份的顺序可能不同,那么您也可以添加一些内容来检查 - 我假设结果表行标签中的类型可能与参考表 1 的顺序不同,但如果它们也始终处于相同的顺序(按照你的例子)然后INDEX/MATCH
末尾的部分可以简化为单个范围
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)