подсчет рабочих дней/посещений в табеле

Автор paresh, 15 апреля 2022, 13:48

0 Пользователи и 1 гость просматривают эту тему.

paresh

Добрый день!

Необходимо в табеле (лист ТАБЕЛЬ) посчитать сколько рабочих дней (без выходных и праздников) у работника было в текущем месяце для вычисления норма-часов. К примеру, сотрудник был в отпуске, на больничном, взял день за свой счет или приступил к работе с середины месяца. Или допустим, в апреле 30 дней, а рабочих 21, сотрудник был в отпуске с 11 по 17. В ячейке Х21 (ЛИСТ_ТАБЕЛЬ) следующая формула =$'качественная премия'.O$18*E21-СУММ(G22:V22;G24:V24), в которой идет подсчет оставшихся или переработанных часов, чтобы было наглядно видно сколько осталось или сколько переработано. Но эта формула работает только при условии, что у сотрудника норма часов соответствует производственному календарю, т.е. 21 рабочий день * внутридневную норму. В случае формулы, там просто вручную прописана месячная норма часов. Были следующие идеи:
1. В столбце F "количество ставок" ЛИСТ_ТАБЕЛЬ как комментарий указать период работы сотрудника. К примеру, с 5.04.2022 по 18.04.2022. Таким образом можно было бы посчитать общее количество дней. Но, к сожалению, без учета выходных и праздников.
2. В диапазоне G14:V18 посчитать количество рабочих дней путем выделения ячеек выходных дней определенным цветом (к примеру, красным). Это бы сработало, так как ежемесячно нам приходится корректировать выделение цветом выходных дней. Но я не нашел такой функции  в libreoffice, которая бы подсчитывала количество ячеек с определенным цветом.

Пожалуйста, подскажите, может у кого будут какие-нибудь идеи? Спасибо!

economist

#1
Функция ЧИСТРАБДНИ() поддерживает список выходных/нерабочих/праздничных. СУММПРОИЗВ() или СЧЕТЕСЛИ(), СУММЕСЛИ() - когда нужно посчитать Часы подо всеми буквы "я" итд.

Мес. норма часов - если несколько графиков и смен - лучше брать из графика (отдельный лист).

Если человек перешел из смены в другую, то его норму нужно вычислять особо, или убедить что берется график по состоянию на конец м-ца.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

sokol92

Цитата: paresh от 15 апреля 2022, 13:48Но я не нашел такой функции  в libreoffice, которая бы подсчитывала количество ячеек с определенным цветом
Можно попробовать функцией вернуть цвет ячейки (хотя для UDF-функций это "моветон") и использовать в обычных формулах.

Изменение цвета ячейки не вызывает пересчет формул, поэтому после внесения изменений в табель нужно выполнить полный пересчет формул: Ctrl+Shift+F9.

Option VbaSupport 1
Function getColor(cell)
  getColor=cell.CellRange.CellBackColor
End Function


Владимир.

eeigor

#3
"Но я не нашел такой функции  в libreoffice, которая бы подсчитывала количество ячеек с определенным цветом."

Посмотрите тему: там есть решение подобного вопроса.
https://forumooo.ru/index.php/topic,8853.0.html
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

paresh

Цитата: economist от 15 апреля 2022, 14:27
Функция ЧИСТРАБДНИ() поддерживает список выходных/нерабочих/праздничных. СУММПРОИЗВ() или СЧЕТЕСЛИ(), СУММЕСЛИ() - когда нужно посчитать Часы подо всеми буквы "я" итд.

Мес. норма часов - если несколько графиков и смен - лучше брать из графика (отдельный лист).

Если человек перешел из смены в другую, то его норму нужно вычислять особо, или убедить что берется график по состоянию на конец м-ца.


Как добавить доп выходные (праздники по актуальному производственному календарю) я разобрался. А как изменить выходной день (субботу или воскресенье) на рабочий? Это реально?

economist

Я предвидел этот вопрос и потому написал в #1 про отдельный лист с графиком. У ЧИСТРАБДНИ 4 аргумента: 

StartDate — дата, с которой выполняется расчет. Если дата начала является рабочим днем, этот день включается в расчет.

EndDate — это дата, до которой выполняется вычисление. Если конечная дата является рабочим днем, этот день включается в расчет.

Праздники — необязательный список праздников. Это нерабочие дни. Введите диапазон ячеек, в котором праздники перечислены отдельно.

Рабочие дни — необязательный список числовых значений, определяющих стандартную рабочую неделю. Этот список начинается с воскресенья, рабочие дни обозначаются нулем, а нерабочие дни - ненулевым значением.

Задайте все дни недели рабочими, а выходные - праздниками.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...