我不是程序员,我不能编写代码来挽救我的生命!
但是,我有一个Excel表来计算多个资源的分配时间。目前,我写的公式不能直接找到相关的行,所以如果"可用性"行不高于"容量"行公式不能像我希望的那样工作。
我目前使用的公式是:
=IF(A8=A9, IF( B8 = "Availability", IF(D8=D9,0, IF(D8<0, -D8+D9, D9-D8)), ""), "")
我希望公式查找资源名称并计算&#34;可用性&#34;之间的分配小时数。行和&#34;容量&#34;每个月的行。此公式需要为每个资源名称执行此操作,而不是重复结果,因此每个资源名称都有一个值。
感谢您花时间阅读本文,即使您无法提供帮助。
答案 0 :(得分:0)
试试这个:
=IF(B2 = "Availability",INDEX(D:D,MATCH(A2 & "Capacity",A:A&B:B,0))-D2,"")
问题是容量并不总是直接在可用性之下。这是一个数组公式,必须通过Ctrl-Shift-Enter确认。把它放在H2的公式框中。按Ctrl-Shift-Enter。然后复制下来。
一个注释:如果不是整个列引用,它会加快速度; D:D,B:B和A:A,你把实际的绝对数据范围; $ d $ 2:$ d $ 300 ...
答案 1 :(得分:0)
SUMPRODUCT
公式对此很有用。我通常命名范围但为此目的,我包括前1000行。这将为您提供第1个月的总小时数,其中资源名称=名称1和类别是可用性,无论顺序或每个出现的次数......
=SUMPRODUCT(($A$2:$A$1000="Name 1")*($B$2:$B$1000="Availability")*($D$2:$D$1000))
你可以为容量做同样的事情,或者如果你需要差异......
=SUMPRODUCT(($A$2:$A$1000="Name 1")*($B$2:$B$1000="Availability")*($D$2:$D$1000))-
SUMPRODUCT(($A$2:$A$1000="Name 1")*($B$2:$B$1000="Capacity")*($D$2:$D$1000))