Страницы: 1 2 След.
RSS
Вычислить значение ночных часов
 
добрый день. есть значение начала смены и продолжительности. в q13 прописаны варианты вычисления. как можно с  помощью формулы вычислить данное значение? к сожалению не смог додуматься. если вычитать из 24 часов время начала и продолжительности  смены получается что после 24 дня где начало ссмены все теряется. то есть с 13 до 1 - то теряется час.
подскажите как можно сделать с помощью формулы?
 
Может быть как вариант сделать несколько ячеек где указать время когда начинается и заканчиваются дневные?  
 
попробуйте доя O      
Код
=МАКС(ЛЕВСИМВ(O6;ПОИСК(":";O6)-1)+O9-22;0)
 
Vik_tor,спасибо, уже получается что то считать:) не справляется если смена заканчивается после 6 утра следующего дня за началом смены. например если смена 21:00|11 - должно быть 11 часов дневных, и 8 ночных, а по этой формуле считает 10 ночных т.к. нет верхнего предела.

и ещё вопрос, можно ли как то добавить условие для обеда? если смена такая то то обед такой в формулу? т.к. по факту смена до 1 ночи, в табеле стоит только 11 а не 12 т.к. час обеда. но  если посмотреть то вычитается обед из дневной части.

p.s так полагаю по количеству знаков - :30 не засчитывает? минуты?  
Изменено: dmitry201708 - 09.11.2017 20:30:12
 
Код
=МИН(МАКС(ЛЕВСИМВ(O6;ПОИСК(":";O6)-1)+O9-22;0);8)
не ту формулу скопировал
какой ночью обед?
 2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
у вас в файле минут не было.
Изменено: Vik_tor - 09.11.2017 20:33:40
 
Обновил файл. различные смены добавил в строку.
ночью не будет обед, да.
я про то, что в жизни смена начинается в 13:00, обед где то до 22 будет, поэтому в табеле ставится смена 11, а не все 12, но при этом 3 ночных т.к. до 1 ночи. или добавлять вручную самому. если в ячейки писать 13:00|12 то считает верно 3
 
вот с минутами, про обед сами подумайте, куда его вставить( в ночное или не ночное время), типа если от начала до 22-00 меньше 4 часов, то ...
 
То есть, обед то конечно вряд ли будет затрагивать ночные, но как в условие бы добавить.
Код
=ЕСЛИ(O9>10;(МИН(МАКС(ЛЕВСИМВ(O6;ПОИСК(":";O6)-1)+O9+1-22;0);8));ЕСЛИ(O9<9;(МИН(МАКС(ЛЕВСИМВ(O6;ПОИСК(":";O6)-1)+O9+0,5-22;0);8))))

но 0,5 не логично т.к. все равно будет 3 ночных на примере если с 17:00

 
dmitry201708, Так а как я потом умножу число часов на число? переводя значения?
имелось ввиду, что минуты считать в значение 3,5, а не 3:30
Изменено: dmitry201708 - 09.11.2017 23:56:10
 
Здравствуйте. Что то нахимичил, посмотрите может что и примените. Про обед ничего не понял, по этому и не учитывал.
 
gling, спасибо за Ваш пример! Думаю вариант с поиском мин и макс более оптимальный, из-за отсутствия дополнительных таблиц, где вручную вписываешь значение соответствия. Да обед я уже с помощью формулы выше добавил, чтобы верно считалось. Осталось придумать, как считать например если в ячейке 3:00, значит 3 часа отработал, и как перевести в число. Если просто сделать: допустим за час 50 рублей. =50*(адрес ячейки где стоит подсчитанное время 3:00). То ошибка выполнения будет. возможно переводить нужно как то. И  будет ли с помощью формулы выше учитываться если задержался человек на 15 минут
Изменено: dmitry201708 - 10.11.2017 00:56:03
 
Цитата
dmitry201708 написал:
как перевести в число
Умножьте всю конструкцию на 24.
Код
=O17*24

А про опоздания, так попробуйте, где Вы их отмечаете и как? Если отработанное время уменьшаете, то нужно формулу править, а если обед сокращаете, то как он считается я не знаю.

 
gling, Vik_tor,
Да, отработанное время. Только не опоздания, а задержки. Ушел например человек не в 1 ночи, а в 1:20. тогда добавляется ведь 20 минут ему ночных.

p.s. Обнаружил, что если смена начинается после 22, то сразу становится автоматом 8 ночных часов. То есть даже с 23:00|11 пусть, то не 7 как нужно, а 8. И не зависит какое число, будет 8. Как бы учесть это.. Поправив.
по данной формуле так:и с временем тоже
Код
=МИН(МАКС(ЛЕВСИМВ(O6;ПОИСК(":";O6)-1)+O9-22;0);8)
Изменено: dmitry201708 - 10.11.2017 01:08:24
 
Да что то я в формуле накосячил. Подправил немного.
 
gling, да, так считает уже почти верно все. Заметил если например поставить смену с 23:00|3 часа, посчитает что ночных 4 почему то. Значит вы задали прибавление которое я хотел выше? лучше его добавлять после условием если. Если правильно понял. А значение 3,5 после запятой после знака| не учесть?  
 
gling,Так же, полагаю если ставить 23:00|7,5 не посчитает смену. т.к. после | только 2 знака берет, поставив 4 будет ошибка
p.s. да, почему то в той версии примера где вы делали не стояло смены 17:00|7,5. Возможно ли как то учесть?
Изменено: dmitry201708 - 10.11.2017 13:35:13
 
Вы в одном случае время указываете 23:00, а в другом 7,5. Может быть нужно прийти к одному либо 23:00|7:30 или 23|7,5. Можно конечно и эти данные преобразовать, но это повлечет удлинение формулы. А может для удобства создать именованные значения?
 
тут уже сложилось по графику, что указывается в формате 7,5 или 11, или 7,15 - то есть слева начало смены, справа время учитываемое время в табеле.
Поэтому лучше именно это учитывать. И подскажите где добавляете часть обеда Вы в формуле, чтобы знал где править. т.к. без обеда если считать 13:00|11 , он посчитает 2 а не 3 часа. Нужно чтобы и минуты могли учитываться если вдруг смена в 17:30 начнется и будет 7,5 это 17:30|7,5
Изменено: dmitry201708 - 10.11.2017 20:22:13
 
Погоняйте еще вариант
 
gling, Хороший вариант, спасибо:) Вы где то добавляете часы? возможно смещение из-за обеда. Т.к. если смена 17:00|7,5 высчитывается 3:30, хотя по факту 3 должно быть. Или 22:00|2, вообще считает 3:) Когда смена всего 2 часа
 
В формуле добавлен 1 час - это +1/24, Без этого часа как то не правильно получается. Например: если начало в 13 часов +12 часов работы по факту, т.к. с работа закончится в 1 час ночи, но ночные в этом случае снижаются на 1 час. Если предположим что обед в середине работы, то это было в 13+6=19, а это еще не ночное время. Можно убавить ночные часы, но доплату за работу в ночное время снижать нельзя, не важно работал он в это время или обедал. Это мое мнение, но думаю что законодательное подтверждение этому тоже есть. Если по закону можно снижать ночные, то убирайте этот дополнительный час.
Цитата
Или 22:00|2, вообще считает 3:) Когда смена всего 2 часа
Чтобы считать как Вы хотите, тогда нужно рвать смену и показывать какой промежуток времени уходит на обед. А для такого периода работы в 2 часа или до 4, нужно определиться при какой длительности полагается обед и тогда либо прибавить этот час либо нет. Например продолжительность до 6 часов - обед не положен, >6 плюсуем один час. Но это еще доп. проверка еще увеличит формулу.
Изменено: gling - 10.11.2017 22:27:36
 
Цитата
gling написал:
доплату за работу в ночное время снижать нельзя, не важно работал он в это время или обедал
У меня на работе этот час (ночной "обед") не оплачивают  :)  
 
gling, именно по этому и добавлял 0,5 или 1 в формулу. иначе считалось не верно. Но при этом, если смена короткая все равно добавляется. лучше прописать как то в формуле это условие. лучше уж будет возможность задатка этого. Да вроде ночью правда обед не делают. Но я в целом хочу добиться формулы, которая будет уже учитывать все возможные варианты.
 
В #21 прописал проверку, если смена <6 или =6, то время на обед не прибавляется. Проверил, вроде как и хотели. Или не так считает?
Цитата
добиться формулы, которая будет уже учитывать все возможные варианты.
Предположим: Начало работы с 12 продолжительность 10 и начало с 0 продолжительность 10 часа. В первом случае по факту должен быть 1 час ночной , но он не попадает, так как днем кто то плотно пообедал, во втором случае возможно кто то позавтракал в ночное время, но вычитается из общего последний час работы.
Если есть документ в котором оговорено время обеда, как в дневную так и в ночную смену, тогда лучше привязаться к этому времени, и если оно попадает в период работы то вычитать его. Получается слишком много условий, начало работы, окончание, продолжительность,время обеда, попадание обеда в период... и еще наверно это не все условия. Так что "учитывать все возможные варианты" не так то просто получится.
Изменено: gling - 10.11.2017 23:12:11
 
gling,  Да вижу обновили файл. Да добавляется и исключается обед:) только вроде 0:30 так понимаю добавляет, а если смена более 10> ведь уже 1:00.
А главное что если смена 17:00|7,5  все равно 3:30 считает, когда по факту 3:00
 
Цитата
dmitry201708 написал:
все равно 3:30 считает, когда по факту 3:00
Похоже я что то не допонимаю 17:00|7,5=17+7,5=24,5, если продолжительность смены >6, то +1час на обед, следовательно конец смены =24,5+1=25,5 (арифметика). Следовательно это на работе находился с 17 до 24, из них 2ч ночные + с 0 до 25,5-24=1,5ч= 1:30 тоже ночные, результат 2ч ночных+1,5ч ночных = 3,5 или 3:30. Что не так?
 
gling, если смена 7,5 часов, то обед 0:30, если 11 то уже 1:00
 
Цитата
dmitry201708 написал:
если смена 7,5 часов, то обед 0:30,
Ну вот еще условие, и в каком же посте я проглядел это условие, где про него написано?
А какая продолжительность смены без обеда? Тогда нужны условия типа смена 0-6=обед=0:00; 6-10 обед= 0:30; >10 обед=1:00. Так, или другие пределы?
Изменено: gling - 10.11.2017 23:40:09
 
Цитата
dmitry201708 написал:
именно по этому и добавлял 0,5 или 1
Вот тут имелся ввиду обед (недостающее число), что было у вас.
Да можно с данным условиями, думаю по мотивам данных условия если потребуется я поправлю. Главное чтобы можно было понять что за это отвечает:)
 
Цитата
gling написал:
В формуле добавлен 1 час - это +1/24, Без этого часа как то не правильно получается.
Цитата
dmitry201708 написал:
именно по этому и добавлял 0,5 или 1 в формулу.
И какая здесь связь с продолжительностью 7,5 и 10 часов?
Цитата
dmitry201708 написал:
думаю по мотивам данных условия если потребуется я поправлю
И что на каждое условие для каждой смены будите править формулу? Формула сделана с использованием именованных вычислений. Если изменить формулу в именованном диапазоне она повлияет на все ячейки где используется. Если хотите корректировать каждую ячейку, то нужно отказаться от именованных формул и все расчеты перенести в ячейки. А можно в именованной формуле прописать все условия и расчет будет выполняться без дополнительных корректировок.
Посмотреть и править формулы можно в "Диспетчере имен" нажмите Ctrl+F3.
Страницы: 1 2 След.
Читают тему
Наверх