首页 文章

Excel使用小时计划

提问于
浏览
1

我正在尝试编写一个公式(或一个vba代码,因为我打算将该代码导入到vba中)来计算给定工时的日期 .

将有两个主要变量;工作时间(小时):该行上的给定工作需要多少小时 . 工作日期(日期):是该工作开始的计划日期 .

这个计算将针对数千行进行 .

现在的公式非常基本,类似这样:工作日(A2; Sum(A2:$ A $ 2))问题是,A2(工作时间以小时为单位)是一个数字可以在0到最高之间几百个小时 . 正如你所看到的那样,每一行,总和数量都会增加,而且数量也会很大 . 如果我没有确定开始日期,那么日期几乎永远不会正确,因为工作时间可能短于7小时或大约7小时 .

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

所以看起来应该是这样的;

工作时间---------------工作日期

2 ------------------------- 01.01.2017

4 ------------------------- 01.01.2017

3 ------------------------- 02.01.2017

4 ------------------------- 02.01.2017

2 ------------------------- 03.01.2017

工作时间来自vba的另一部分,工作日期应自动计算 . (我打算给出第一个开始日期)

2 回答

  • 1

    您可以考虑添加一个累计工作时间列,该列将继续增加,但一旦总数大于7,它将从头开始 .

    然后,工作日期列可以使用此信息,一旦总计为 > 7 ,它将移至下一个工作日 .

    所以你可以把:

    • 单元格B2中的公式 - =IF(SUM(B1,A2)>7,A2,SUM(B1,A2))

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

    然后将其复制到下面的其余行 .

    enter image description here

    Note: 假设您的VBA在一行中最多放置7个小时,如果工作时间更长,它会将剩余余额结转到下一行 . 如果VBA没有这样做,则工作时间列中需要额外的公式来解决该问题 .

  • 0

    我定制了累积工时列的想法并找到了解决方案 .

    对于第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))
    

    使用这些公式,工作日期功能非常有效 . 感谢累积的工作时间想法!

相关问题