【问题标题】:Difference between two dates and times - Specific business hours - EXCEL两个日期和时间之间的差异 - 具体营业时间 - EXCEL
【发布时间】:2015-05-14 09:29:56
【问题描述】:

我需要创建一个公式来比较两个日期,例如:2015-05-13 18:00:00 和 14/05/2015 08:30:00。由于我只想比较营业时间(周一至周五 - 8:00 至 18:00)的日期,因此此示例的差异应为 30 分钟。

我试过这个公式:

=IF(AND(INT(J62)=INT(K62),NOT(ISNA(MATCH(INT(J62),0)))),0,ABS(IF(INT(J62)=INT(K62) ,ROUND(24*(K62-J62),2),(24*('营业时间'!$A$3-'营业时间'!$A$2)(MAX(NETWORKDAYS(J62+1,K62- 1),0)+INT(24(((K62-INT(K62))-(J62-INT(J62)))+('营业时间'!$A$3-'营业时间'!$ A$2))/(24*('营业时间'!$A$3-'营业时间'!$A$2))))+MOD(ROUND(((24*(K62-INT(K62)))-24 *'营业时间'!$A$2)+(24*'营业时间'!$A$3-(24*(J62-INT(J62)))),2),ROUND((24*('营业时间' !$A$3-'营业时间'!$A$2)),2)))))))

但是这个公式没有给我预期的结果,因为它返回 10.5。

我在“营业时间”A2(开始)和“营业时间”A3(结束)上有营业时间

【问题讨论】:

  • 我认为你应该拆分你的功能。但无论如何,试试这个:单元格 A1 和 01/01/2015 10:35,单元格 A2 和 01/01/2015 15:30:00,单元格 A3 和 =(B1-A1)*1440。在 A3 中,您应该看到值 295(A2 和 A1 之间的分钟数)。现在在 Excel 中使用公式。

标签: excel excel-formula


【解决方案1】:
=IF(DAY(A1)=DAY(B1),B1-A1,(B1-8/24)-(A1+6/24))

如果他们不在同一天,您会将时间调至第一个日期的午夜,并将其调低至第二个日期的午夜。
它不跟踪工作日。你必须自己计算除以七。

编辑:它只是让我觉得有一个功能。

=IF(DAY(A1)=DAY(B1),B1-A1,(B1-8/24)-(A1+6/24)+(NETWORKDAYS(A1,B1)-2)*10/24)

Edit2:多亏了这些言论,我愚蠢的自己已经设法理解了部分问题。这个功能应该可以工作。它具有防止延迟发布和任务和提前完成的保护措施,但没有防止提前发布和延迟完成。随意组合它们。

=(NETWORKDAYS(A1,B1)-1)*10/24-(MIN(A1-ROUNDDOWN(A1,0),18/24)-8/24)+(MAX(B1-ROUNDDOWN(B1,0),8/24)-8/24)

【讨论】:

  • 如果他们碰巧在两个不同年份的同一天会导致错误,我希望OP不要介意。如果有帮助,请随时投票和/或接受我的回答。
  • 这个公式不会产生正确的结果(例如2015-05-13 18:00:00-2015-05-15 18:00:00)=> 44 小时
  • 它提供 20 小时。这是两个工作日,每个工作日 10 个工作小时。
  • 您是否使用示例时间戳测试了您的公式? (B1-8/24)-(A1+6/24) 返回 34 小时,(NETWORKDAYS(A1,B1)-2)*10/24 返回 10 小时。最终结果 44 小时(如果单元格格式不正确,可能看起来像 20 小时)
  • 如果我在工作时间内(8:00 到 18:00)输入值,公式可以正常工作,但如果我输入(例如 14/05/2015 07:00 - 15/05 /2015 10:30) 结果我得到 13:30:00 ,而我希望返回 12:30:00 。我希望计算它的原因是出于 SLA 目的。例如,用户可以在我们的工作时间之外登录问题,但解决问题的时间应该仅基于我们的工作时间。希望这会有所帮助
猜你喜欢
  • 2019-08-04
  • 2020-11-18
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多