我想计算两天之间的营业时间数。
例如。
A B
15/05/2013 13:25 31/05/2013 10:20
19/05/2013 09:12 22/05/2013 21:10
我希望获得 C 列中的结果以及可能的以下术语。
6d 15h 20m
或与上述类似的内容。请帮忙。
答案1
解决方案如下:本网站,它涉及一个相当复杂的公式:
=IF(AND(INT(StartDT)=INT(EndDT),NOT(ISNA(MATCH(INT(StartDT),
HolidayList,0)))),"0 days 0 hours", IF(INT(StartDT)=INT(EndDT),
"0 days " & ROUND(24*(EndDT-StartDT),2)&"hours",
MAX(NETWORKDAYS(StartDT+1,EndDT-1,HolidayList),0)+
INT(24*(((EndDT-INT(EndDT))-(StartDT-INT(StartDT)))+
(DayEnd-DayStart))/(24*(DayEnd-DayStart)))&
" days "&MOD(ROUND(((24*(EndDT-INT(EndDT)))-24*DayStart)+
(24*DayEnd-(24*(StartDT-INT(StartDT)))),2),
ROUND((24*(DayEnd-DayStart)),2))&" hours "))
它采用以下名称:
StartDT
– 开始日期和时间 (25-Oct-99 13:00
)EndDT
– 结束日期和时间(28-Oct-99 15:00
)DayStart
– 开始一天的工作 (9:00
)DayEnd
– 工作日结束(17:00
)HolidayList
– 包含要排除的日期列表的范围
由于我没有 Excel,因此无法测试,但它应该可以完成工作。当然,您可以更改公式以实现不同的输出。
答案2
您无法在单个单元格中得出所需的结果,但您可以使用 计算 C1 中的持续时间(假设您位于第 1 行)=ABS(B1-A1)
。这将为您提供浮点值的天数。然后,您可以使用其他单元格和公式将该数字除以小时、分钟和秒,使用ROUNDDOWN()
计算整数。
编辑:这是我的示例电子表格的内容,因为我似乎无法将其附加到这里,而且我不知道链接到将来可能存在或不存在的文件的政策是什么。这计算了持续时间内的所有时间,而不仅仅是 09:00 到 17:00 M–F。@slhck 的答案可能更合适。
第 1 行:(A)Start
(B)Stop
(C)Days
(D)Hours
(E)Minutes
(F)Seconds
第 2 行:(A)5/1/2013 17:55:00
(B)6/3/2013 1:22:00
(C)=ROUNDDOWN(ABS(B2-A2))
(D)=ROUNDDOWN(((ABS(B2-A2))-C2)*24)
(E)=ROUNDDOWN(((((ABS(B2-A2))-C2)*24)-D2)*60)
(F)=((((((ABS(B2-A2))-C2)*24)-D2)*60)-E2)*60