Как в экселе от даты отнять число

В этой статье описаны синтаксис формулы и использование функции ЧИСТРАБДНИ в Microsoft Excel.

Описание

Возвращает количество рабочих дней между датами "нач_дата" и "кон_дата". Праздники и выходные в это число не включаются. Функцию ЧИСТРАБДНИ можно использовать для вычисления заработной платы работника на основе количества дней, отработанных в указанный период.

Совет: Чтобы вычислить количество полных рабочих дней между двумя датами с использованием параметров, определяющих количество выходных в неделе и то, какие это дни, используйте функцию ЧИСТРАБДНИ.МЕЖД .

Синтаксис

ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])

Аргументы функции ЧИСТРАБДНИ описаны ниже.

    Нач_дата Обязательный. Начальная дата.

    Кон_дата Обязательный. Конечная дата.

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

Важно: Даты должны быть введены с использованием функции ДАТА или как результат вычисления других формул и функций. Например, для указания даты 23 мая 2012 г. воспользуйтесь выражением ДАТА(2012,5,23). Если ввести даты как текст, это может привести к возникновению проблем.

Замечания

    В приложении Microsoft Excel даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию дате 1 января 1900 г. соответствует число 1, а 1 января 2012 г. - число 40 909, поскольку интервал между датами составляет 40 909 дней.

    Если любой из аргументов не является допустимой датой, функция ЧИСТРАБДНИ возвращает значение ошибки #ЗНАЧ!.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем - клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Дата

Описание

Дата начала проекта

Дата окончания проекта

Праздник

Праздник

Праздник

Формула

Описание

Результат

ЧИСТРАБДНИ(A2;A3)

Число рабочих дней между датой начала (01.10.2012) и датой окончания (01.03.2013).

ЧИСТРАБДНИ(A2;A3;A4)

Число рабочих дней между датой начала (01.10.2012) и датой окончания (01.03.2013) с вычетом праздничного дня 22.11.2012 как выходного.

ЧИСТРАБДНИ(A2;A3;A4:A6)

Число рабочих дней между датой начала (01.10.2012) и датой окончания (01.03.2013) с вычетом трех праздничных дней.

Как вводить даты и время в Excel

Если иметь ввиду российские региональные настройки, то Excel позволяет вводить дату очень разными способами - и понимает их все:

"Классическая" форма

3.10.2006

Сокращенная форма

3.10.06

С использованием дефисов

3-10-6

С использованием дроби

3/10/6

Внешний вид (отображение) даты в ячейке может быть очень разным (с годом или без, месяц числом или словом и т.д.) и задается в меню Формат - Ячейки (Format - Cells) :

Время вводится в ячейки с использованием двоеточия. Например

16:45

По желанию можно дополнительно уточнить количество секунд - вводя их также через двоеточие:

16:45:30

И, наконец, никто не запрещает указывать дату и время вместе - через пробел:

Быстрый ввод дат и времени

Для ввода сегодняшней даты в текущую ячейку можно воспользоваться сочетанием клавиш Ctrl + Ж .

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

Если Вам часто приходится вводить различные даты в ячейки листа - почитайте это .

Если нужно, чтобы в ячейке всегда была актуальная сегодняшняя дата - лучше воспользоваться функцией СЕГОДНЯ (меню Вставка - Функция , категория Дата и время ):


Как Excel хранит и обрабатывает даты и время

Если выделить ячейку с датой и установить для нее Общий формат (меню Формат - Ячейки - вкладка Число - Общий ), то можно увидеть интересную картинку:

Вот так, например, выглядит 8.10.2006 15:42.

На самом деле любую дату Excel хранит и обрабатывает именно так - как число с целой и дробной частью. Целая часть числа (38998) - это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0)

Из всех этих фактов следуют два чисто практических вывода:

Количество дней между двумя датами

Считается простым вычитаением - из конечной даты вычитаем начальную и переводим результат в Общий числовой формат, чтобы показать разницу в днях:

Количество рабочих дней между двумя датами

Здесь ситуация сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ из надстройки Пакета анализа .

Сначала необходимо подключить надстройку Пакета анализа . Для этого идем в меню Сервис - Надстройки (Tools - Add-Ins) и ставим галочку напротив Пакет анализа (Analisys Toolpak) . После этого в Мастере функций в категории Дата и время появится функция ЧИСТРАБДНИ (NETWORKDAYS).

В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (праздников):


Количество полных лет, месяцев и дней между датами. Возраст в годах.

Про то, как это правильно вычислять, лучше почитать .

Сдвиг даты на заданное количество дней

Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу (см.выше), то для вычисления даты, отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число.

Сдвиг даты на заданное количество рабочих дней

Эту операцию осуществляет функция РАБДНИ (WORKDAY) из надстройки Пакет анализа . Она позволяет вычислить дату, отстоящую вперед или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных суббот и воскресений и государственных праздинков). Использование этой функции полностью аналогично применению функции ЧИСТРАБДНИ описанной выше.

Вычисление дня недели

Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД (WEEKDAY) из категории Дата и время .

Другой способ: выделить ячейку с датой, открыть меню Формат - Ячейки (Format - Cells) , вкладка Число , далее - Все форматы и ввести в строку Тип новый формат ДДДД :


Вычисление временных интервалов

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

Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24 часов, то Excel обнулит ее и начнет суммировать опять с нуля. Чтобы этого не происходило, нужно применить к итоговой ячейке формат 37:30:55 (меню Формат - Ячейки - Число - Время )

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

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

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

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

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

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

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


Функция РАБДЕНЬ.МЕЖД

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

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

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

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

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


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

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


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

  • Функции и
  • Преобразования текста в дату

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

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

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

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

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

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