【问题标题】:calculating hours based on date range根据日期范围计算小时数
【发布时间】:2022-07-22 02:17:54
【问题描述】:

我一直在尝试创建一个嵌套的 IF 语句,该语句将根据日期范围和开始/结束时间计算小时数(类似于时间表)。 这会根据小时数是连续工作还是每天的一部分来计算“工作”小时数。 我已经设法让这个基于一系列变量返回正确的结果,但是它为一个变量返回了一个不正确的结果,它增加了过多的小时数,因为它计算了第二天的总小时数范围。这是开始时间大于结束时间并进入以下日期的地方(即:夜班)。

感谢任何建议,因为我尝试从 D12-B12+1 中删除 +1,这会导致其他条目返回不正确的值。

我希望这是有道理的。

代码:

=IF(F12="Yes",(P12-O12) * 24 *K12, IF(F12="No",(MOD(E12-C12,1)) * 24 * (IF(AND(D12=B12+1,E12<C12),+1,D12-B12+1)) * K12,0))

Link to cell

【问题讨论】:

  • 04/07/2022 06:00:00 08/07/2022 10:00:00 是轮班还是连续轮班?

标签: google-sheets google-sheets-formula


【解决方案1】:

我了解您想根据开始日期开始时间结束日期、结束时间来计算小时数,您要连接的日期和时间是什么,这个 sloution 不需要连接,甚至是“24 小时连续覆盖?”输入 我简化了问题,所以它可以在不同的情况下使用,看看Example Sheet.

格式修复

  • 在开始之前,我们需要修复: 此处的完成时间设置为日期。


需要这样设置


转到格式 > 自定义日期和时间并将其设置为小时:分钟:秒。


并在您的情况下将 Hours Q2 设置为 Elapsed Hour : Minute : Second

公式

在您的情况下将其粘贴到“小时”列Q2

=IF(B2="",,((D2-B2)*IFS(AND(C2=0,C2=E2),1,E2<C2,((1-C2)+E2),1=1,E2-C2))+IFS(AND(C2=0,C2=E2),1,E2<C2,((1-C2)+E2),1=1,E2-C2))

【讨论】:

    猜你喜欢
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多