logo

Блог Александра Томма

О том, как заставить Microsoft Office работать на Вас

Считаем рабочие дни в Microsoft Excel

Рабочие дни в Excel Дата: 10 февраля 2016 Категория: Excel
Поделиться, добавить в закладки или распечатать статью

Функции подсчета рабочих дней, наверное, один из самых ценных подарков пользователям Excel от разработчиков. Вы представьте, сколько производственных задач можно спланировать с их помощью? Очень много! Только не все знают о существовании этих функций. Вот этот пробел мы сегодня и восполним.

Как определить дату через заданное количество рабочих дней

Стандартная задача: нам известна дата начала работ и отведенное на это количество рабочих дней. Нужно определить дату окончания работ. Как мы это сделаем? С помощью функции РАБДЕНЬ(Начальная дата;Количество дней;[Праздники]). У этой функции три аргумента:

  1. Начальная дата – дата, от которой отсчитываем срок. Это обязательный аргумент
  2. Количество дней – сколько рабочих дней прибавить к начальной дате – обязательный аргумент
  3. Праздники – перечень праздничных дней, если они есть и их нужно учитывать. Это необязательный аргумент. Удобнее всего указывать его ссылкой на список праздников.

Вот пример использования этой функции:

Функция РАБДЕНЬ в Excel
Функция РАБДЕНЬ

Но что если у вас другой график выходных? Например, вы отдыхаете только в воскресенье? Используйте похожую функцию – РАБДЕНЬ.МЕЖД(Начальная дата;Количество дней; [Выходные];[Праздники]). Здесь появился еще один необязательный параметр – Выходные. Он как раз и позволяет задать нужный график выходных. Когда вы вводите этот параметр, программа подсказывает что выбрать для правильной настройки выходных дней:

Функция РАБДЕНЬ.МЕЖД в Эксель
Функция РАБДЕНЬ.МЕЖД

В остальном, она работает так же, как и предыдущая.

Считаем сколько рабочих дней между датами

Вот еще сходная задача: посчитать сколько рабочих дней было между двумя датами. Функции такого подсчёта очень похожи на две предыдущие. Чтобы просто посчитать сколько рабочих дней в интервале дат, используем функцию ЧИСТРАБДНИ(Начальная дата;Конечная дата;[Праздники]). Здесь три аргумента:

  • Начальная дата периода – обязательный аргумент
  • Конечная дата периода – обязательные аргумент
  • Праздники – необязательный аргумент – учитывает праздничные дни, не совпадающие с выходными. Удобнее всего использовать ссылку на праздники

Вот как эта функция применяется:

Функция ЧИСТРАБДНИ в Excel
Функция ЧИСТРАБДНИ

Выходными днями по умолчанию считаются суббота и воскресенье. Если вам нужно выбрать другие выходные – используйте функцию ЧИСТРАБДНИ.МЕЖД(Начальная дата;Конечная дата;[Выходные];[Праздники]). При вводе аргумента «Выходные», программа выведет подсказку со списком параметров. Выберите и запишите подходящий:

Функция ЧИСТРАБДНИ.МЕЖД
Функция ЧИСТРАБДНИ.МЕЖД

Скажу вам, этих четырех простых функций хватает, чтобы эффективно считать рабочие дни. Комбинируйте их с другими функциями обработки дат, чтобы выжать из них максимум:

Следующим постом мы заканчиваем рассмотрение функций обработки дат и времени в Эксель. Совсем скоро вы будете гуру в работе с датами! Так что, ожидаем статью о преобразовании текста в дату и время!

Друзья, если у вас остались вопросы о функциях подсчета рабочих дней – пишите их в комментариях, обязательно отвечу.

Поделиться, добавить в закладки или распечатать статью

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

15 комментариев

  1. А как рассчитать дату, отстоящую на определённое количество рабочих дней, с учётом возможного переноса выходных из-за праздников? Т.е. для функции РАБДЕНЬ надо ввести список исключений из выходных. Функция РАБДЕНЬ.МЕЖД не удобна, т.к. надо вводить ещё и полный список выходных, помимо праздников.

    Ответить
    1. Александр, если имеет место перенос, то количество рабочих дней не изменится, они лишь перераспределятся. Вопрос лишь в том, попадут ли все перенесенные дни в заданный Вами интервал. Например, функция вернет неверный результат, если в вычисленный интервал попадет перенесенный выходной, но не попадет день, на который его перенесли. Для решения задачи потребуется функция РАБДЕНЬ.МЕЖД. В ней не нужно перечислять все выходные. а лишь указать какие дни недели нужно считать выходными, программа отобразит подсказку при заполнении этого пункта. Далее нужно будет функциями сравнения проверить попадает ли результат вычисления в период переносов, и лишь если попадает — проверить вручную необходимость добавления/вычитания определенного количества дней.

      Ответить
  2. Так в том-то и дело, что требуется рассчитать график подачи заявлений на несколько лет вперёд, отстоящих от предыдущих дат на год, два, пять,.. (там сложная схема), а заявления при этом должны подаваться за определённое количество рабочих дней до очередной даты. Я и использую функцию РАБДЕНЬ с коррекцией очередного графика путём ввода праздничных дней на будущий год (когда принимается постановление), но перенесённые выходные вносят неточность. Я и не знаю как учесть.

    Ответить
    1. Да, но внутри периода количество выходных/рабочих изменяться не должно, т.к. это перенос. Сложность составляют лишь пограничные дни, которые затрагивают лишь часть переноса. Давайте попробуем разобрать Вашу задачу на конкретном примере. Пришлите несколько примеров расчетов, которые вызвали у Вас затруднения, используя форму обратной связи.

      Ответить
  3. Я отправил через форму обратной связи задачу с описанием примера, но файл не вложить — пишет недопустимый тип файла. Ни Exel, ни Rar, ни Zip не пропускает!!

    Ответить
  4. Добрый день! Как в формуле указать конечную дату расчета? К примеру есть формула =ДАТА(ГОД(C14);МЕСЯЦ(C14)+1;ДЕНЬ(20)), но мне нужно чтобы формула применялась только до определенной даты.Спасибо.

    Ответить
    1. Оксана, нужно использовать функцию условия ЕСЛИ(Условие ; Значение если истина; Значение если ложь). Если, например, у Вас в ячейке А1 хранится та самая предельная дата. Все что меньше должно вычисляться по Вашей формуле, что больше — возвращать пустое значение, тогда формула будет выглядеть так: =ЕСЛИ(ДАТА(ГОД(C14);МЕСЯЦ(C14)+1;ДЕНЬ(20))<A1;ДАТА(ГОД(C14);МЕСЯЦ(C14)+1;ДЕНЬ(20));"")

      Ответить
  5. Добрый день!

    Можно ли и как рассчитать дату начала, зная конечную дату и количество дней для выполнения задачи?

    Ответить
    1. Евгений, конечно можно. Используйте функцию РАБДНИ, аргументом «начальная дата» будет Ваша конечная дата, а количество дней укажите отрицательным числом!

      Ответить
  6. Подскажите пожалуйста как сделать функцию чтобы итог приписывался с словом день пример:(4дня,1день,15дней) и менялся в зависимости от количества дней

    Ответить
    1. Сергей, когда можно упростить — рекомендую упрощать. Например, сократить до «дн». Тогда формула будет выглядеть так: =A1&» дн.». В данном случае предполагается, что в ячейке А1 находится Ваше число.

      Ответить
  7. Добрый день! Подскажите пожалуйста как можно рассчитать например третий рабочий день. К примеру задаём дату — 01.02.2018. Мне нужно третий рабочий день. Функция рабдень считает через 3 раб дня это 6 февраля. А мне необходимо чтобы получалось на третий т.е. 5 февраля. Спасибо

    Ответить
    1. Наталья, здравствуйте. Функция РАБДЕНЬ считает дату, которая будет через 3 рабочих дня, а не на третий день. Поэтому, в формуле вычтите единицу из даты, или в параметре «число дней» указывайте не 3, а 2. Второй вариант, видимо, сработает лучше.

      Ответить
  8. Добрый день,
    Подскажите, как высчитать количество рабочих дней для списка сотрудников, если какие-то сотрудники пришли после начала месяца, а какие-то уволились до его окончания.
    Заранее спасибо!

    Ответить
    1. Юлия, здравствуйте. Сделайте в списке сотрудников две колонки с датами приема на работу и увольнения. Используйте функцию ЧИСТРАБДНИ, она описана в этой статье и может принимать для расчетов произвольные даты, не обязательно первый или последний день месяца. Если не получится — напишите, будем разбираться.

      Ответить