除去周末和节假日时间的经过天数小时数
这听起来很简单,但我一直在试图找出解决scheme。 我去秃头之前的任何帮助将是伟大的。
我需要一个能够的公式
- 计算两个date\时间值(例如
05/12/2012 5:30 PM
和07/12/2012 5:45 PM
05/12/2012 5:30 PM
07/12/2012 5:45 PM
)之间的时间(天,小时,分钟); - 不包括周末和节假日。
我希望公式的结果如下:“例如2 Days 0 Hrs and 15 Mins
”。
谢谢
链接到示例工作簿
您可以使用NETWORKDAYS
和NETWORKDAYS.INTL
来实现这一点
这些回报networking需要一点操作:
-
使用这些函数来计算非工作日的数量,然后从开始和结束date之间的差异中减去
=E3-D3-(NETWORKDAYS.INTL(D3,E3,"0000000")-NETWORKDAYS(D3,E3,$A$16:$A$24))
这将返回工作日差异,其中1.0 = 1天
-
NETWORKDAYS.INTL(D3,E3,"0000000")
计算两个date之间的整个天(没有周末,没有节假日) -
NETWORKDAYS(D3,E3,"0000000",$A$16:$A$24)
计算两个date之间的整个工作日天数(周六/周日周末,假期根据您的列表$A$16:$A$24
) -
这两个date之间的非工作日差异。
-
E3-D3
是开始和结束date/时间之间的时间(1.0 = 1天)
使用自定义数字格式来显示所需格式的thye结果
d "Days" h "Hours" mm "Mins"
注意:这种格式不适用于负值,您将需要一个替代结束date是在开始date之前。
下面的公式就像一个没有额外的格式或操作的处理。
为了使它更加稳定,我已经把英国2012/13的所有假期都变成了“Excel序列号”格式,并把它们放在一个数组中。
将公式中的“D5”replace为您的课程参考单元格或“完成date”的“结束date”和“E5”或“完成date”的“公制”。
=IF(E5<D5,"-"&TEXT(D5-E5,"h:mm"),NETWORKDAYS(D5,E5,({40910,41005,41008,41036,41064,41065,41148,41268,41269,41275,41362,41365,41400,41421,41512,41633,41634}))-1-(MOD(E5,1)<MOD(D5,1))&" days "&TEXT(E5-D5,"h:mm"))