必须"表"我Excel
A B C D E F
1 Category Project Hours
2 Project C1 C2 P1 10
3 P1 x P2 20
4 P2 x P3 30
5 P3 x x
6 P4 x
A2:C6显示项目列表。每个项目属于一个或多个类别 E2:F4显示每个项目花费的时间
我正在寻找一种方法来计算每个类别所花费的时间。答案是显而易见的(40h和50h),但我无法弄清楚如何构建一个可以提供答案的工作公式
H I
1 Category Sum Hours
2 C1 40
3 C2 50
有什么想法吗?
答案 0 :(得分:1)
SUMPRODUCT()似乎是这种情况的不错选择。如果您允许稍微修改结果列,则公式将变得更容易。 在H2中输入此公式,然后复制到I2。
=SUMPRODUCT((B$2=H$1)*(B$3:B$6="x")*($F$2:$F$5))
我已将INDEX, MATCH
与SUMPRODUCT
合并以照顾Pnumbers。修改后的公式输入H2
是:
=(SUMPRODUCT((B$2=H$1)*(B$3:B$6="x")*($F$2:$F$5)))*((INDEX($A$3:$A$6,MATCH($E2,$A$3:$A$6))=$E2)*1)
下一步是按IFERROR
包含错误捕获。
修改强>
合并IFERROR
公式是。
=IFERROR((SUMPRODUCT((B$2=H$1)*(B$3:B$6="x")*($F$2:$F$5)))*((INDEX($A$3:$A$6,MATCH($E2,$A$3:$A$6))=$E2)*1),0)
答案 1 :(得分:1)
这是SUMIF
的简单应用。您可以在I2中输入=SUMIF(B3:B6;"x";$F2:$F5)
并相应地修改其他类别。如果您将公式彼此相邻而不是彼此相邻,则可以将公式复制到。
我建议您按以下方式更改工作表:
A B C D E F
1 =SUMIF1 =SUMIF2 Project Hours
2 Project C1 C2 Hours P1 10
3 P1 x =VLOOKUP P2 20
4 P2 x =VLOOKUP P3 30
5 P3 x x =VLOOKUP
6 P4 x =VLOOKUP
SUMIF1
公式为=SUMIF(B3:B6;"x";$D3:$D6)
且SUMIF2
是复制的公式。这适用于您选择的任何标签。 VLOOKUP
中的D3
公式为=VLOOKUP(A3;$E$2:$F$4;2;FALSE)
。请注意,由于P4没有小时数,因此D6会有#NA
。只需解决这个问题,你就可以找到一个相对普遍的解决方案。
答案 2 :(得分:0)
基于来自skkakker和chthonicdaemon的非常灵感的答案,我提出了这个解决方案,即Works。谢谢!
=SUMPRODUCT(COUNTIFS($A$3:$A$6,$E$2:$E$4,INDEX($B$3:$C$6,0,MATCH($H2,$B$2:$C$2,0)),"x"),$F$2:$F$4)