我正在尝试在 Excel 中计算两个日期之间的时差以排除周末和节假日。我遇到的问题是有时某个事件发生在周末。
例如,我正在处理系统输入,以计算某些东西添加到系统和某人处理该问题之间的时间。
我在单元格 A1 中输入了时间,在单元格 B1 中输入了完成时间。我目前使用以下公式 NETWORKDAYS,但我不喜欢它返回全天数的方式,相反,我想知道小时数。当使用 NETWORKDAYS 公式和 MOD 时,每当周末发生某事时,我都会收到错误。
我正在处理一个系统,任何人都可以随时输入某些内容,但我们不会在非工作时间内做出回应,除非系统自动为我们做出回应。
答案1
没有内置的 NETWORKHOURS 函数。您必须自己实现它或在线查找示例。
答案2
这有用吗?
1)在单元格中输入开始日期/时间A1以及单元格中的结束日期/时间B1
2)创建一个名为假期,其中包含任何假期。 创建命名范围的示例。
3)复制以下公式,粘贴到公式栏对于细胞D1,然后按Enter。
=IFERROR(MROUND(NETWORKDAYS(
IF(OR(
WEEKDAY(A1,2)>=6,
COUNTIF(Holidays,INT(A1))>0),WORKDAY(A1,1),
A1),
IF(OR(
WEEKDAY(B1,2)>=6,
COUNTIF(Holidays,INT(B1))>0),WORKDAY(B1,-1)+TIME(23,59,59),
B1))-1-MOD(
IF(OR(
WEEKDAY(A1,2)>=6,
COUNTIF(Holidays,INT(A1))>0),WORKDAY(A1,1),
A1),1)+MOD(
IF(OR(
WEEKDAY(B1,2)>=6,
COUNTIF(Holidays,INT(B1))>0),WORKDAY(B1,-1)+TIME(23,59,59),
B1),1),"1:00"),0)
例子:
4)格式化单元格D1作为时间类型为37:30:55
5)开始日期/时间为星期六的结果示例。
注意:上面只显示一个小时,因为工作日从午夜开始。
==============================================
预期成绩
1)返回指定日期/时间之间的工作时间。
2)如果指定日期/时间之间工作时间少于 0 小时(即在同一周末开始/结束),则返回 0。
3) 四舍五入到最接近的小时数。
4) 一个工作日以24小时计算。 您可能可以修改具体工作时间的公式,但问题中并未具体说明。
==============================================