【问题标题】:Excel Schedule to work with hoursExcel 计划以小时为单位工作
【发布时间】:2017-07-21 08:40:37
【问题描述】:

我正在尝试编写一个公式(或 vba 代码,因为无论如何我都要将该代码导入 vba)来计算给定工作时间的日期。

将有 2 个主要变量; 工作时间(小时):该行的给定工作需要多少小时。 Work-Date ( date ):是该工作开始的计划日期。

这种计算将针对数千行进行。

现在的公式真的很基本,像这样:workday(A2;Sum(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 的另一部分,工作日期应该是自动计算的。 (我将给出第一个开始日期)

【问题讨论】:

    标签: excel vba date schedule


    【解决方案1】:

    您可能会考虑添加一个累积工作时间列,该列会不断增加,但一旦总数大于 7,它将重新开始。

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

    所以你可以说:

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

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

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

    【讨论】:

    • 感谢您的回复,但使用这些公式,B 列仅增加 2 行。因此,如果我得到 5 行的 7 小时(如 1、1、1、2、2 小时),那么它就不能正常工作,并且 C 列公式不正确。它指的是自己。
    • 你确定你完全按照指示去做了吗?你可能想看看这个上传的样本:docs.google.com/spreadsheets/d/…
    • 所以你上面写的公式实际上是在 B3 和 C4,但是如果 A 列的“工作时间”超过 7 怎么办?用你写的B公式,如果超过7就直接写。但是假设A5单元格是22甚至100,那么它应该增加3个工作日。
    • 100 天,当然应该再加上 3 天 :)
    • 另外,对于B行的公式,它只给出了2个选项;总和小于 7,然后是总和,或者总和大于 7,然后是正常工作时间。但如果总和是 10,那么第二天的值应该加 3。
    【解决方案2】:

    我自定义了累积工作时间栏的想法并找到了解决方案。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      相关资源
      最近更新 更多