Excel 通过在其他列中查找正确的行,尝试从一列计算值

Excel 通过在其他列中查找正确的行,尝试从一列计算值,excel,excel-formula,excel-2013,Excel,Excel Formula,Excel 2013,我不是一个程序员,我不能写代码来拯救我的生命 但是,我有一个Excel表,可以计算分配给多个资源的时间。目前,我编写的公式无法直接找到相关行,因此,如果“可用性”行在“容量”行上方而不是,则公式无法按我所希望的方式工作 我目前使用的公式是: =IF(A8=A9, IF( B8 = "Availability", IF(D8=D9,0, IF(D8<0, -D8+D9, D9-D8)), ""), "") =IF(A8=A9,IF(B8=“可用性”),IF(D8=D9,0,IF(D8试试这

我不是一个程序员,我不能写代码来拯救我的生命

但是,我有一个Excel表,可以计算分配给多个资源的时间。目前,我编写的公式无法直接找到相关行,因此,如果“可用性”行在“容量”行上方而不是,则公式无法按我所希望的方式工作

我目前使用的公式是:

=IF(A8=A9, IF( B8 = "Availability", IF(D8=D9,0, IF(D8<0, -D8+D9, D9-D8)), ""), "")
=IF(A8=A9,IF(B8=“可用性”),IF(D8=D9,0,IF(D8试试这个:

=IF(B2 = "Availability",INDEX(D:D,MATCH(A2 & "Capacity",A:A&B:B,0))-D2,"")
问题是容量并不总是直接处于可用性之下。这是一个数组公式,必须通过Ctrl-Shift-Enter确认。将其放入公式框中。按Ctrl-Shift-Enter,然后向下复制


注意:如果不是整列引用,而是D:D、B:B和A:A,你把数据的实际绝对范围放进去,$D$2:$D$300…

SUMPRODUCT
公式在这方面效果很好。我通常会命名这些范围,但出于这个目的,我包括了前1000行。这将给出总数第1个月的小时数,其中Resource Name=Name 1,Category为Availability,与订单或每次出现的次数无关

=SUMPRODUCT($A$2:$A$1000=“Name 1”)*($B$2:$B$1000=“可用性”)*($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))

@WhiteHat或我的答案有帮助吗?如果没有,我知道我们双方都会帮助解决与我们的答案有关的任何问题。@pnuts或拿走他们需要的东西然后离开。我的强迫症想要结束,即使别人的答案被接受。这正是我想要的。谢谢Scott