Резюме:
Я знаю, что функция NETWORKDAYS
может использоваться для определения количества рабочих дней (= исключая выходные и праздничные дни) между двумя датами. Но что, если я хочу узнать количество рабочих часов , скажем, между вчерашним 14:00 и сегодняшним 10:00?
-> Мне нужна функция NETWORKINGHOURS
которая не существует (Excel 2003). По сути, возьмите NETWORKDAYS
и добавьте два дополнительных параметра start of working day
и end of working day
. Это звучит просто, но мои попытки создать его по формуле быстро становятся очень сложными.
Вопрос:
Как я могу заставить мои networkhours
работать в сети, даже если время окончания дня раньше времени начала работы?
Подробности:
У меня есть лист Excel с двумя столбцами дата + время. Я хочу рассчитать количество дней + часы + минуты между временными метками, но только считать рабочие часы.
С помощью функции NETWORKDAYS
можно найти рабочие дни, исключая выходные и праздничные дни (вычитая 2 из его результата, поскольку функция считает как начальный, так и конечный день независимо от времени). Все идет нормально. Это выглядит так (вдохновение отсюда):
=CONCATENATE(NETWORKDAYS($A6;B6;holidays)-1
;"d "
;HOUR(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))
;":"
;IF(MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))>9
;MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))
;CONCATENATE("0";MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1))))))
дает мне очень хорошие результаты в формате 1d 2:30
при условии, что я назвал ячейки для startofday
(08:00), endofday
(16:00) и holidays
(столбец со значениями даты).
Это работает очень хорошо, за исключением того, что формула прерывается, когда время окончания дня предшествует времени начала дня. Вот мои тестовые данные и формулы:
networkdays-2 =NETWORKDAYS($A6;B6;holidays)-2
часы =MIN($B$3;MOD(B6;1))-MAX($A$3;MOD(A6;1))
минуты =MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))
сетевые часы видят кодовый блок выше