【问题标题】:Find length of time within range查找范围内的时间长度
【发布时间】:2016-09-05 00:17:37
【问题描述】:

我试图了解在时间范围内发生的中断时长。

在一次单元格中,我有支持期:1 级 Monday-Saturday 0800-1800

在另外两个单元格中,我有中断的开始时间和结束时间

示例: 中断开始:Wednesday, 24 August 2016 16:47

中断结束:Monday, 29 August 2016 10:15

结果应该返回:33:28 hours 工作原理:

Wednesday, 24 August 2016 16:47 - 18:00 = + 01:13
Thursday , 25 August 2016 08:00 - 18:00 = + 10:00
Friday   , 26 August 2016 08:00 - 18:00 = + 10:00
Saturday , 27 August 2016 08:00 - 18:00 = + 10:00
Monday   , 29 August 2016 08:00 - 10:15 = + 02:15

任何建议表示赞赏!

更新

【问题讨论】:

  • 通常它类似于= ( A1 - A2 ) / 2413:00 Monday 似乎不是一个有效的日期,因为它没有显示任何日期/月/年
  • 抱歉更新了单元格值
  • 其实,如果两个日期相差4天17小时28分钟,怎么只有15小时呢?
  • 抱歉,工作已纠正
  • 感谢您的工作和时间规范,我不确定我的答案是否相关,但看起来@Karpak 有一个很好的答案

标签: excel if-statement time


【解决方案1】:

请检查上面的图片,我希望你想要类似的东西。

在C2列输入以下公式

=INT(IF(DAYS(B2,A2)=0,IF(TEXT(A2,"ddd")="Sun",0,ROUND((B2-A2)/(1/24/60),0)
  ),IF(DAYS(B2,A2)=1,IF(TEXT(A2,"ddd")="Sun",0,(DATE(YEAR(A2),MONTH(A2),DAY(A2))+1/24*18)-A2
     )/(1/24/60) +
     IF(TEXT(B2,"ddd")="Sun",0,B2-(DATE(YEAR(B2),MONTH(B2),DAY(B2))+1/24*8)
       )/(1/24/60),IF(TEXT(A2,"ddd")="Sun",0,(DATE(YEAR(A2),MONTH(A2),DAY(A2))+1/24*18)-A2
     )/(1/24/60) +
     IF(TEXT(B2,"ddd")="Sun",0,B2-(DATE(YEAR(B2),MONTH(B2),DAY(B2))+1/24*8)
       )/(1/24/60) +
      (IF(DAYS((DATE(YEAR(B2-1),MONTH(B2-1),DAY(B2-1))),A2)<0,0,DAYS((DATE(YEAR(B2-1),MONTH(B2-1),DAY(B2-1))),A2))-
         INT(((DATE(YEAR(B2-1),MONTH(B2-1),DAY(B2-1)))-(DATE(YEAR(A2),MONTH(A2),DAY(A2)) + MOD(DATE(YEAR(A2),MONTH(A2),DAY(A2)),7)))/7+1)) * 10 * 60
  )
))

在单元格D2中输入以下公式

=INT(C2/60) &":" & INT(MOD(C2,60)+0.5)

然后将 C2 和 D2 复制到您想要的所有单元格,它将给出您正在寻找的中断值。

【讨论】:

  • @Georgemichaels:您能否更新一下这是否适合您?
【解决方案2】:

例如,如果单元格 A2 包含中断开始日期 Wednesday, 24 August 2016 16:47 并且单元格 B2 包含中断结束日期 Monday, 29 August 2016 10:15,那么您可以使用以下内容:

=DAY(B2-A2)

这将返回 4 天。

=HOUR(B2-A2)

17 小时后返回

=MINUTE(B2-A2)

28 分钟后返回。

然后您可以使用以下内容:

="The outage lasted for "& DAY(B2-A2) & " days, " & HOUR(B2-A2) & " hours, and " & MINUTE(B2-A2) & " minutes."

制作这个:

中断持续了 4 天 17 小时 28 分钟。

【讨论】:

  • 似乎只需要 Monday-Saturday 0800-1800 窗口中的时间,但我仍然不知道如何从中获得 15 小时(除非他们有一个非常大的发布休息时间: ])。如果您愿意试一试,可以查看我的答案中的 cmets。
  • 啊,是的,那将是一个有价值的附加信息。 :D 看起来@Karpak 现在已经控制住了。
  • @Slai 感谢您对此的后续工作,很好地解决了问题的根源! :D
猜你喜欢
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多