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很好。 感谢累积的工作时间的想法!