Страницы: 1
RSS
Расчет сверхурочных часов с переходом полуночи, Проблема создании формулы.
 
Здравствуйте. Прошу разобраться в формуле расчета рабочих часов
Никак не могу написать формулу для подсчета часов с переходом полуночи.
Ситуация: рабочий день начинается в любое время, например, 16:00 1 марта, а заканчивается  в 5:00 2 марта. До 4 утра считается по обычной ставке, а после 4 утра по повышенной ставке(например, 300р в час, а после 400р в час).
Проблема в формуле подсчета времени до 4 утра. Пробовал разные формулы, но все они считают только если начало работы начинается после полуночи, например, в час ночи.
Пример формул которые я использовал:
=ЕСЛИ(F86<ВРЕМЯ(4;0;0);ЕСЛИ(G86<ВРЕМЯ(4;0;0);(G86-F86)*24;(ВРЕМЯ(4;0;0)-F86)*24);0)
=ЕСЛИ(F86<ВРЕМЯ(4;0;0);МИН(ВРЕМЯ(4;0;0)-F86;G86-F86);0)*24\
=ЕСЛИ(F86<ВРЕМЯ(4;0;0);ЕСЛИ(G86<ВРЕМЯ(4;0;0);(G86-F86)*24;(ВРЕМЯ(4;0;0)-F86)*24);0)
=ЕСЛИ(F86<ВРЕМЯ(4;0;0);(МИН(ВРЕМЯ(4;0;0);G86)-МАКС(F86;ВРЕМЯ(0;0;0)))*24;0)
=ЕСЛИ(И(F86<ВРЕМЯ(4;0;0);G86>ВРЕМЯ(4;0;0));(МИН(G86;ВРЕМЯ(4;0;0))-МАКС(F86;ВРЕМЯ(0;0;0)))*24;0)
Где F86 - начало работы, G86 - конец работы

Также раньше использовал формулу: =ЕСЛИ(F86>0;(ВРЕМЯ(4;0;0)<F86)+ВРЕМЯ(4;0;0)-F86;ЕСЛИ(F86=0;"0")), но при завершении работы раньше 4 утра, формула не работает. Нужно изменять ВРЕМЯ на те значения времени в котором закончилась работа, например в 2 часа ночи

Формула повышенной ставки не работает: =ЕСЛИ(F86>ВРЕМЯ(4;0;0);(G86-ВРЕМЯ(4;0;0))*24;0)
Показывает 0:00, но при расчете суммы выдает верно(например 1 час переработки 400р)
НО при расчете, если работа заканчивается в 19:00 то сумма оплаты показывает 6600р, хотя долен быть 0р.
Прикрепляю пример таблицы ниже.
образец.xlsx
Изменено: FuadM69 - 13.03.2025 19:37:49 (дополнения информации)
 
FuadM69, только сегодня на другом ресурсе эта тема поднималась, но там есть файл, и диапазон дат аж в несколько лет был.
Например легко решается с помощью уже давно написанной UDF, я когда-то минуты в сменах высчитывал.
Чуть подправил чтоб считались минуты именно только ночные, с 22:00 до 6:00.
По сути это то что Вам нужно. Если нужна UDF...
P.S. Посмотрел появившийся файл - тут другая задача, то готовое не вполне годится...
Изменено: Hugo - 13.03.2025 20:21:10
 
Впишите время с датой,
 
Как вариант работы UDF если заинтересует:
Скрытый текст

Смену указал 4-16, можно изменять в аргументах.
Результат в минутах, поэтому перевожу в время чтоб показать форматом.
Но можно показывать в целых минутах, или часах в числовом виде.
В первой строе вывел как там выглядят формулы в ячейках.
 
Спасибо, выглядит как рабочая схема, никогда не работал с UDF, можно получить таблицу на фото в ексель формате?
Цитата
написал:
Как вариант работы UDF если заинтересует:
 
Цитата
написал:
Впишите время с датой
в этом случае сумма за эти часы огромных сумм, так что это не совсем рабочая схема
 
Цитата
FuadM69 написал:
можно получить таблицу на фото в ексель формате?
У меня код в надстройке был, советую тоже так сделать, но затем придётся в файле формулу перезабить.
Файл разблокировать в свойствах файла, макросы разрешить.
P.S. Кстати время с датой вписывать не требуется, но можно если надо. Но +1 если время уходит за полночь в аргументе добавляйте.

Заменил файл и код, тут пока все результат корректные.
Аргументов на один меньше, описание в коде, как применять понятно в файле.
Результат выводится как и ранее в штуках минут, начало и конец смен тоже указывать аналогично в минутах от начала суток.
Изменено: Hugo - 15.03.2025 20:18:42
 
Формула
=IF(C4>D4;(1-C4)+D4;D4-C4)
 
Цитата
FuadM69:    До 4 утра считается по обычной ставке, а после 4 утра по повышенной ставке
"С/у":
=(МАКС((D4<C4)+D4-1/6;1)-1)*24
"База":
=(МИН((D4<C4)+D4-1/6;1)-C4+1/6)*24
или исходя из посчитанного "Всего ":
=E4*24-G4
...формат "Общий"
и предполагается, что трудоголиков отработавших более суток нет )
 
Павел \Ʌ/, СПАСИБО!
Подскажите пожалуйста как работает эта формула? просто хочу адаптировать на случай если с/у считаются после 2:30
Изменено: FuadM69 - 18.03.2025 03:26:01
 
FuadM69, пожалуста
Цитата
как работает эта формула
основная логика - в "сдвиге" точки отсчёта в ноль или к "полуночи" по вашему
от 4 четырех чассов первоначально или
"04:00:00"  -->  4/24  -->  1/6
Цитата
с/у считаются после 2:30
можно и так:
=(МАКС((D4<C4)+D4-"2:30";1)-1)*24
 
Павел \Ʌ/, Еще раз благодарю, вы очень облегчили мне работу!
Страницы: 1
Читают тему
Наверх