计算excel中两天之间的工作日和时间

我写了下面的excel公式来计算两个date*之间的工作时间* (周六和周日除外)*。

如果开始和结束date在星期一到星期五之间,它会很好用。 如果两天都包括星期六或星期天,那就会引起错误。

如果开始date是星期六或星期日,我会寻求帮助,那么应该将下一个工作日作为开始date,如果结束date是星期六或星期天,则应该将上一个工作日作为结束date。


下面是例子和我的工作。然后它应该返回结果为h:mm格式


Startdate : enddate : Working hours(exc sat and sun) 9/28/2013 2:20 : 9/29/2013 2:39 : Both 9/29/2013 2:39 : 9/29/2013 2:39 : Both 9/29/2013 2:39 : 9/27/2013 13:18 : StartDate 9/27/2013 13:18 : 9/29/2013 2:22 : Enddate 10/1/2013 21:22 : 10/2/2013 0:33 : 3.10 9/30/2013 2:22 : 9/30/2013 5:22 : 3.00 

和c2中的公式

 =IF(OR(WEEKDAY(A2)=1,WEEKDAY(A2)=7,WEEKDAY(B2)=1,WEEKDAY(B2)=7),IF(AND(OR(WEEKDAY(A2)=1,WEEKDAY(A2)=7),OR(WEEKDAY(B2)=1,WEEKDAY(B2)=7)),"Both",IF(OR(WEEKDAY(A2)=1,WEEKDAY(A2)=7),"StartDate","Enddate")),TEXT(B2-A2-(NETWORKDAYS.INTL(A2,B2,"0000000")-NETWORKDAYS(A2,B2)),"D")*24+TEXT(B2-A2-(NETWORKDAYS.INTL(A2,B2,"0000000")-NETWORKDAYS(A2,B2)),"H.MM")) 

让我知道你是否需要任何帮助

计算两个date之间的整个工作日,不包括这些date:

 =MAX(NETWORKDAYS.INTL(A1+1,B1-1),0) 

计算第一天的工作时间(一天到期):

 =IF(WEEKDAY(A1,2)<=5,ROUNDDOWN(A1+1,0)-A1,0) 

计算最后一天的工作时间(到当天结束时):

 =IF(WEEKDAY(B1,2)<=5,ROUNDDOWN(B1+1,0)-B1,0) 

总结这些,在这里你去。