Пример 2.
В первом приказе устанавливаем работнику срок, за который выплачивается премия - текущий месяц, то есть с первого календарного дня месяца до последнего календарного дня месяца.
Смотрим табличный файл:
Последний календарный день текущего (использована формула СЕГОДНЯ()) месяца вычисляем по формуле:
=КОНМЕСЯЦА(СЕГОДНЯ();0)
Синтаксис:
КОНМЕСЯЦА(нач_дата;число_месяцев)
Аргументы функции КОНМЕСЯЦА описаны ниже.
-
Нач_дата — обязательный аргумент. Начальная дата. Даты должны быть введены с использованием функции ДАТА или как результат вычисления других формул и функций. Например, для указания даты 23 мая 2008 г. воспользуйтесь выражением ДАТА(2008;5;23). Если ввести даты как текст, это может привести к возникновению проблем.
-
Число_месяцев — обязательный аргумент. Количество месяцев до или после даты "нач_дата". Положительное значение аргумента "число_месяцев" означает будущие даты; отрицательное значение — прошедшие даты.
Первый календарный день текущего месяца получаем по формуле:
=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1), где 1 - это первый день нужной даты
По инструкции из первой части делаем слияние с текстовым документом, можем получить следующий результат:
Видим, что даты в тексте приказа отобразились в неприемлемом для нас формате "М/Д/ГГГГ".
Чтобы применить привычный нам формат "ДД.ММ.ГГГГ", выполним следующие действия:
нажимаем правой кнопкой мыши по нужному полю слияния, например, здесь "3/1/2020" и в выпадающем списке выбираем "Коды/значения полей"
Видим на месте поля слияния следующий код:
Добавляем в конце этого кода следующие указания для смены формата отображения даты:
\@ "DD.MM.YYYY"
Получаем код:
Далее правой кнопкой мыши вызываем выпадающее меню и выбираем "Обновить поле":
Получаем дату в нужном формате:
Аналогично исправляем формат отображения второй даты.
***
Во втором приказе требуется установить срок совмещения профессий для рабочего в течение текущего месяца. Если установлено, что человек длительное время будет совмещать целый месяц, то срок устанавливаем с первого рабочего дня до последнего рабочего дня месяца.
Переходим в табличный файл:
Первый рабочий день месяца получаем, используя формулу =РАБДЕНЬ(G2-1;1;Праздники2020), где ссылаемся на ячейку G2 с вычислением первого календарного дня, или другую формулу, не зависимую от лишних ячеек:
=РАБДЕНЬ((ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1))-1;1;Праздники2020)
В данной формуле происходит исключение нерабочих дней производственного календаря, указанных в диапазоне ячеек, которому мы присвоили имя "Праздники2020". Иначе этот диапазон в данном примере мог быть указан в формуле как "B4:B17".
Последний рабочий день текущего месяца получаем, используя ту же функцию РАБДЕНЬ:
=РАБДЕНЬ(КОНМЕСЯЦА(СЕГОДНЯ();0)+1;-1;Праздники2020)
Проведя слияние с текстовым документов и откорректировав формат отображения дат, получаем результат, где начальная дата периода 2-е, а не 1-е число месяца, т.к. 01.03.2020г. выпадает на воскресенье:
Если вам требуется использовать в формулах не только текущий месяц, можно в ячейке H2 вместо функции СЕГОДНЯ() писать любую дату в желаемом месяце, а во всех формулах вместо СЕГОДНЯ() ссылаться на ячейку H2 с вашей датой.
Смотрите пример для января 2020года:
Если не требуется учитывать праздничные и перенесенные нерабочие дни, то есть учитывая только субботу и воскресенье, то первый рабочий день можно вычислить следующим способом.
В ячейке K2, используя функцию =ДЕНЬНЕД, получаем порядковый номер дня недели для первого календарного дня месяца:
Далее, учитывая, что суббота - это в Excel 7й день, а воскресенье - 1й, ставим множественные условия в ячейке J4 и прибавляем к дате начала месяца в ячейке G2 сколько нужно дней, чтобы получить понедельник, если начало месяца выпадает на 1й или 7й день (сб или вскр):
|