Решение представлено на этом сайте, и оно включает в себя довольно сложную формулу:
=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, но он должен выполнить свою работу. Конечно, вы можете изменить формулу для достижения другого результата.