累积差异公式

时间:2015-10-22 22:01:54

标签: excel function excel-formula cumulative-sum

我有一个表,按小时计算针对特定资源的最佳成本分配,然后根据结果分配该数据。分配工作奇迹,但我的问题在于有多个行具有相同的小时。我无法在Excel中创建可以考虑先前行的公式,然后从可用资源中减去使用的金额。如果所有资源都已用完,则应默认使用下一个可用资源。这是目前的公式:

=IF(Q2=0,"NONE",INDEX('RESOURCE ALLOCATION'!$F$3:$I$3,1,MATCH(LARGE(INDIRECT("'RESOURCE ALLOCATION'!F"&B2+3&" :I"&B2+3),1),INDIRECT("'RESOURCE ALLOCATION'!F"&B2+3&" :I"&B2+3),0)))

Q2 =第一个带有数字的单元格

Resource Allocation是此工作簿中的工作表,其中$F$3:$I$3范围是名称的可用资源。

MATCH公式只查看当前行的小时,将其指向表中的相应行,然后按名称返回关联的资源。

每个后续行增加1,如下所示:

=IF(Q3=0,"NONE",INDEX('RESOURCE ALLOCATION'!$F$3:$I$3,1,MATCH(LARGE(INDIRECT("'RESOURCE ALLOCATION'!F"&B3+3&" :I"&B3+3),1),INDIRECT("'RESOURCE ALLOCATION'!F"&B3+3&" :I"&B3+3),0)))

我使用的表格如下:

Hour Resource 1 Resource 2  Resource 3  Resource 4    TOTAL

  21         50          0           0           10    60

这个小时,需要60个单位。针对50分配的Resource 1分配10Resource 4分配的Resource 1。在当前公式下,它只是根据Payment cash1 = user_input.next( ); Payment cash2 = user_input.next( ); Payment credit1 = user_input.next( ); Payment credit2 = user_input.next( ); 分配所有内容。

1 个答案:

答案 0 :(得分:0)

这是我的解决方案:

Solution

为了易读性,我添加了一些额外的列。

在C栏中,您可以使用简单的sumifs检查给定单元格以及之前所有单位所花费的特定时间。

C2中的公式:

=SUMIF($A$2:A2,A2,$B$2:B2)

D列只是进入INDIRECT函数的范围。

D2中的公式:

="I"&MATCH(A2,H:H,0)&":L"&MATCH(A2,H:H,0)

E列显示的资源已被用作此特定小时及其出现的第一个来源。

E2中的公式:

=5-IFERROR((1/(A2=A1))*IFERROR(MATCH(C1,INDIRECT(D2),0)-1,MATCH(C1,INDIRECT(D2),-1)),4)

列F显示的资源已被用作此特定小时及其出现的最后一个来源。如果资源不足,则返回错误(我不知道是否属于这种情况)。

F2中的公式:

=5-MATCH(C2,INDIRECT(D2),-1)

要点:

这个想法非常简单,但如果要求你改变你的方法。积累应该在资源内而不是在最终报告表中进行。 R4应该是实际资源4和所有其他资源的总和,即R4 =资源4 +资源3 +资源2 +资源1,R3 =资源3 +资源2 +资源1,R2 =资源2 +资源1,R1 =资源1.只需使用匹配参数-1。

由于您没有所有资源,因此您可能希望将某种排除添加到报告为第一个和最后一个使用资源的范围内。