Я столкнулся с дилеммой, которую, как я думал, легко преодолею, но в итоге получил другие результаты.
Итак, я использовал следующую формулу:
=(NETWORKDAYS(H6,N6)-1)*($F$2-$E$2)+IF(NETWORKDAYS(N6,N6),MEDIAN(MOD(N6,1),$F$2,$E$2),$F$2)-MEDIAN(NETWORKDAYS(H6,H6)*MOD(H6,1),$F$2,$E$2)
Эта формула работает отлично, так как я модифицировал ее для использования NETWORKDAYS.INTL, потому что все рабочие дни являются рабочими, а рабочее время - с 8:00 до 23:00.
Мой модифицированный код:
=(NETWORKDAYS.INTL([@[DC_CREATION_DATE]],[@[ACTUAL_END_DATE]],"0000000")-1)*(upper-lower)
+IF(NETWORKDAYS.INTL([@[ACTUAL_END_DATE]],[@[ACTUAL_END_DATE]],"0000000"),MEDIAN(MOD([@[ACTUAL_END_DATE]],1),upper,lower),upper)
-MEDIAN(NETWORKDAYS.INTL([@[DC_CREATION_DATE]],[@[DC_CREATION_DATE]],"0000000")*MOD([@[DC_CREATION_DATE]],1),upper,lower)
Где:
- DC_CREATION_DATE = Дата начала
- ACTUAL_END_DATE = Дата окончания
- upper = Именованный диапазон, содержащий время окончания, например, 23:00
- lower = Именованный диапазон, содержащий время начала, т.е. 8:00 AM
Теперь проблема в том, что для определенного месяца рабочее время дня меняется на сменное:
- Время начала 1 = 11:00
- Время окончания 1 = 17:00
- Время начала 2 = 21:00
- Время окончания 2 = 2:00 AM
Любое время вне указанного времени считается нерабочим. Полученные нами TT МОГУТ быть вне рабочего времени, но я буду рассчитывать только продолжительность рабочего времени.
Я пытался дважды использовать одну и ту же формулу в одном и том же диапазоне дат (в первый раз верхнее значение становится 17:00, а нижнее - 11:00, а результат сохраняется в ячейке, во второй раз верхнее значение становится равным 2: 00 AM и ниже становится 9:00 PM, и результат сохраняется в другой ячейке), а затем складываются два результата в отдельные ячейки, чтобы получить общее рабочее время между диапазоном рабочих часов.
Увы, я думал, что это так просто, но я вижу разные результаты для обеих формул, когда они выполняются. Потому что, если время находится за пределами рабочего диапазона, даже для начала и конца, оно должно вернуть 0. (я считаю, что могу преодолеть это, используя IF)
######## - это поле, показывающее отрицательное значение. Так как я форматирую все ячейки как [h]: mm
Кто-нибудь может мне помочь в этом отношении?