查找范围内的时间长度

时间:2016-09-05 00:17:38

标签: excel if-statement time

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

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

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

实施例: 停电开始:Wednesday, 24 August 2016 16:47

停电结束:Monday, 29 August 2016 10:15

结果应返回:33:28小时 运作:

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

任何建议表示赞赏!

更新

2 个答案:

答案 0 :(得分:1)

Sample Excel

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

在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复制到您想要的所有单元格,它将给出您要查找的中断值。

答案 1 :(得分:0)

例如,如果单元格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分钟。