Excel计划与小时一起工作

我正在尝试编写一个公式(或者一个vba代码,因为我将把这个代码导入到vba中)来计算给定工作时间的date。

将会有2个主要variables; 工作时间(小时):该行上给定的工作要花费多less小时。 工作date(date):是该作业开始的计划date。

而这个计算将会为成千上万行做出。

现在的公式是非常基本的,像这样:workday(A2; Sum(A2:$ A $ 2))问题是,A2(这是工作时间以小时为单位)是一个数字可以在0.1到最多几百个小时。 正如你所看到的那样,每一行的和数都会增加,并且会产生大量的数字。 如果我不确定开始date,则date几乎是不正确的,因为工作时间可能短于7小时或7小时。

我在这里的主要目标是在每个工作日的总工作时间超过7小时的时候增加工作日,并将额外的小时或分钟转移到下一个工作日。

所以应该看起来像这样;

工作时间—————工作date

2 ————————- 01.01.2017

4 ————————- 01.01.2017

3 ————————- 02.01.2017

4 ————————- 02.01.2017

2 ————————- 03.01.2017

工作时间来自vba的另一部分,工作date应该是自动计算的。 (我打算给出第一个开始date)

您可能会想到添加一个累积的工作时间栏,这个栏将会继续增加,但是一旦总和大于7,它将从头开始。

工作date栏然后可以使用这个信息,一旦总数> 7 ,它将移动到下一个工作日。

所以你可以把:

  • 单元格B2中的公式 – =IF(SUM(B1,A2)>7,A2,SUM(B1,A2))
  • 单元格C3中的公式 – =IF(SUM(B3,A4)>7,WORKDAY(C3,1),C3)

然后将其复制到下面的行的其余部分。

在这里输入图像说明

注意:假设您的VBA在一行中最多放置7个小时,如果工作时间更长,则将剩余的余额转移到下一行。 如果VBA没有这样做,那么在“工作时间”列中需要额外的公式来解决这个问题。

我定制了累积的工作时间专栏的想法,并find了解决办法。

对于第15行,我使用这个公式作为累积工作时间栏;

 =IF(K15>7;SUM(K15;MOD(L14;7));IF(L14>7;SUM(K15;MOD(L14;7));SUM(L14;K15))) 

再次为第15行,我使用这个公式为工作日;

 =WORKDAY(M14;(L15/7)) 

有了这些公式,工作datefunction很好。 感谢累积的工作时间的想法!