我正在尝试编写一个公式(或vba代码,因为我要将该代码导入vba),以计算给定工时的日期。
将有2个主要变量; 工作时间(小时):该行上的给定工作需要多少小时。 工作日期(日期):是该工作开始的计划日期。
此计算将针对数千行进行。
现在公式非常基本,如下所示:工作日(A2;总和(A2:$ A $ 2)) 问题是,A2(工作时间以小时计)是一个数字,可以在0.1到数百小时之间。 正如你所看到的那样,每一行,总和数量都会增加,而且数量也会很大。如果我没有确定开始日期,那么日期几乎永远不会正确,因为工作时间可能短于7小时或大约7小时。
我的主要目标是在每个工作日的总工作时间超过7小时,并将额外的小时或分钟转移到下一个工作日期时,增加工作日期。
所以看起来应该是这样的;
工作时间---------------工作日期
2 ------------------------- 01.01.2017
4 ------------------------- 01.01.2017
3 ------------------------- 02.01.2017
4 ------------------------- 02.01.2017
2 ------------------------- 03.01.2017
工作时间来自vba的另一部分,工作日期应自动计算。 (我将给出第一个开始日期)
答案 0 :(得分:0)
您可以考虑添加一个累计工作时间列,该列将继续增加,但一旦总数大于7,它将从头开始。
工作日期列可以使用此信息,一旦总计为explode(',', $selector)
,它将移至下一个工作日。
所以你可以说:
> 7
=IF(SUM(B1,A2)>7,A2,SUM(B1,A2))
然后将其复制到下面的其余行。
注意:假设您的VBA在一行中最多放置7个小时,如果工作时间更长,它会将余额结转到下一行。如果VBA没有这样做,工作时间列中需要额外的公式来解决该问题。
答案 1 :(得分:0)
我定制了累积工作时间列的想法并找到了解决方案。
对于第15行,我将此公式用于累积工作时间列;
=IF(K15>7;SUM(K15;MOD(L14;7));IF(L14>7;SUM(K15;MOD(L14;7));SUM(L14;K15)))
对于第15行,我将此公式用于workdate;
=WORKDAY(M14;(L15/7))
使用这些公式,工作日期功能非常有效。 感谢累积的工作时间理念!