Страницы: 1
RSS
Зарплата по месяцам, если известны оклад, дата приема и увольнения
 
Добрый день.

Мне необходимо решить задачу, в которой известно сколько сотрудник зарабатывает за полный месяц и период его работы - разбить данные с учетом года и фактически отработанного времени. Зп начисляется пропорционально отработанному времени (без учета выходных и праздников).
т.е. 100% - Январь 10300, и 15 дней в феврале 54% 5518.
Если нет даты увольнения (пустая ячейка, значит сотрудник продолжает работу.

Заранее огромное спасибо за помощь  :)  
Изменено: vikttur - 18.10.2021 17:01:49
 
Alisa2017,  ЗАМЕНИЛ, так как там при отсутствии даты увольнения ошибка
Код
=ЕСЛИОШИБКА(ЕСЛИ(МЕСЯЦ($D5)=I$3;$B5/(КОНМЕСЯЦА($D5;0)-(КОНМЕСЯЦА($D5;-1)+1)+1)*($D5-(КОНМЕСЯЦА($D5;-1)+1)+1);ЕСЛИ(МЕСЯЦ($D5)>I$3;$B5;""));$B5)
Изменено: Mershik - 29.02.2020 09:10:34
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, формула не учитывает месяц начала работы и никак не привязана к году работы.. В примере у Сотрудника 3 в Январе отработано 65% месяца, а по расчету выходит полный месяц. И если сотрудник начал работать в феврале, то это тоже не будет взято в расчет..
Форум читаю уже несколько лет, но впервые не могу найти ответ и сама затрудняюсь выстроить логику данного расчета )
 
Alisa2017,
Посмотрите https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=125564
 
Цитата
Kuzmich написал:
Посмотрите
Kuzmich,  с языка сняли - вопрос становится модным  :)   :)   :)  
Цитата
Alisa2017 написал:
впервые не могу найти
а поиск сломался  ;)  тут тоже ссылку давал
Код
=МАКС(МИН(КОНМЕСЯЦА(ДАТА($J$1;I$3;1);0);ЕСЛИ($D3;$D3;ДАТА(9999;12;31)))-МАКС($C3;ДАТА($J$1;I$3;1))+1;0)/(КОНМЕСЯЦА(ДАТА($J$1;I$3;1);0)-ДАТА($J$1;I$3;1)+1)*$B3
Изменено: buchlotnik - 29.02.2020 11:31:17
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Alisa2017 написал:
сама затрудняюсь выстроить логику данного расчета
Здравствуйте!
Распечатайте производственный календарь на 2016 год (у Вас в примере он) и зайдите в бухгалтерию. Спросите, как посчитать зарплату сотруднику, который отработал 1 день 01.04.2016, если его месячный оклад 10200. Бухгалтер посмотрит, сколько рабочих дней в производственном календаре на апрель 2016 (21 рабочий день),  разделит оклад на количество рабочих дней и умножит на фактически отработанное время - на 1 день. Получится 485 руб. 71 коп. И если ему заплатят 340 руб., то первая же проверка сделает жизнь тому расчетчику очень весёлой.
Мой вариант решения во вложении. Проверяйте.
Скрытый текст
Изменено: aequit - 29.02.2020 16:57:33 (Исправлена ошибка, проявляющаяся при выборе года, не входящего в период работы. Файл заменен.)
 
buchlotnik, огромное спасибо, идеально!  
 
Alisa2017,
aequit тоже для вас старался
 
Kuzmich, Это для остальных было  :D
Цитата

Alisa2017 написал:
Заранее огромное спасибо за помощь
Скорее всего, ТС обрадовалась и убежала с устроившим её ответом...
Если считать зарплату пропорционально отработанному времени, то сотрудник, начавший работу 11.01.2016 получит полную ставку, так как он отработал полную норму часов по производственному календарю и нельзя на этом основании ему сокращать зарплату и рассчитывать её по календарным дням. Впрочем, возможно, это просто учебная задача для студентов и преподаватели подразумевают чистую математику без учета бухгалтерских правил.
Изменено: aequit - 29.02.2020 15:50:07
 
Спасибо большое ВСЕМ )
Решение aequit смогла оценить только зайдя с компьютера. Вы настоящий ГУРУ )) Рада поучиться на вашем примере )
 
Alisa2017, это слишком громко сказано, я как раз ещё продолжаю учиться, в том числе и у buchlotnik и у многих других (если Вы читаете форум несколько лет, то все эти имена знаете).
 
Цитата
aequit написал:
это просто учебная задача
Именно так. Но ваше решение более жизненное и может ещё не раз пригодиться на практике, а не в теории. И я не сбежала )) Простите, что ответила не сразу))
 
Цитата
Alisa2017 написал:
может ещё не раз пригодиться на практике,
Смысл состоит в том, что каждый день в неполном месяце проверяется вспомогательной функцией на предмет того, рабочий он или нерабочий. Затем высчитывается стоимость рабочего дня исходя из количества рабочих дней в конкретном месяце.
Для корректной работы функции следите за актуальностью праздничных дней и рабочих суббот - их добавлять в таблицы на другом листе. Остальные праздничные дни и рабочие субботы (и воскресенья) уже добавлены в базу внутри кода (с 01.01.2006 по 31.12.2020). Удачи!

P.s. нашел ошибку в алгоритме - если выбрать другой год, например, 2017, ошибочно выдает первый месяц с зарплатой у уволенного сотрудника. Сейчас поправлю...
P.s. 2. Исправил. Теперь корректно отрабатывает изменения года. Файл и код заменил в посте выше.
Изменено: aequit - 29.02.2020 16:59:43 (Исправил ошибку.)
 
aequit, нет предела совершенству) Спасибо)  
 
позвольте снова вернуться к данной теме.
все что нужно внести корректировку в уже имеющуюся формулу. В предложенных вариантах расчет ЗП идет по усредненной стоимости за месяц включая и выходные дни.
мне необходимо что бы формула расчета считала чисторабочие дни.
ни как не догадаюсь как мне это сделать
также сделал отдельным списком "выходные_дни"
Загрузить файлы
Страницы: 1
Наверх