Расчет интервалов и рабочих дней в Excel

Иван Корнев·11.04.2026·4 мин

Чтобы узнать количество дней между двумя датами в Excel, просто вычтите одну дату из другой (например, =B2-A2). Для подсчета рабочих дней используйте функцию =NETWORKDAYS(), а для точного расчета стажа или возраста в годах и месяцах — скрытую функцию =DATEDIF(). Ниже приведены подробные инструкции и примеры для каждого сценария.

Базовый расчет: количество календарных дней

Самый простой способ узнать длительность периода — вычитание. В Excel даты хранятся как порядковые номера, поэтому арифметические операции над ними возвращают количество дней.

Формула:

=B2 - A2

Где A2 — начальная дата, B2 — конечная.

Если результат отображается как дата (например, «05.янв.1900»), измените формат ячейки на «Общий» или «Числовой». Нажмите Ctrl+1, выберите категорию «Числовой» и установите 0 знаков после запятой.

Важные нюансы:

  • Результат всегда положительный, если конечная дата позже начальной.
  • Чтобы включить оба дня периода (начальный и конечный), добавьте единицу: =B2 - A2 + 1. Это часто требуется при расчете длительности отпуска или больничного.

Точный расчет: годы, месяцы и дни (Функция DATEDIF)

Для кадрового учета, расчета возраста или стажа простого вычитания недостаточно, так как месяцы имеют разную длину. Используйте функцию DATEDIF. Она не отображается в списке подсказок Excel, но работает во всех версиях.

Синтаксис: =DATEDIF(начальная_дата; конечная_дата; "единица_измерения")

Код единицыЧто считаетПример использования
"y"Полные годыРасчет возраста
"m"Полные месяцыОбщий срок договора
"d"ДниАналог простого вычитания
"ym"Месяцы без учета летОстаток месяцев после полных лет
"yd"Дни без учета летДни от последнего дня рождения
"md"Дни без учета месяцев и летОстаток дней после полных месяцев

Пример сложной формулы (стаж): Чтобы получить текст вида «5 лет 3 месяца 12 дней», объедините функции:

=DATEDIF(A2; B2; "y") & " лет " & DATEDIF(A2; B2; "ym") & " мес. " & DATEDIF(A2; B2; "md") & " дн."

Подсчет рабочих дней (NETWORKDAYS)

В бизнес-задачах часто нужно исключить выходные. Функция NETWORKDAYS автоматически пропускает субботы и воскресенья.

Базовая формула (только выходные):

=NETWORKDAYS(A2; B2)

С учетом праздников: Если в компании есть официальные нерабочие дни, создайте список дат в отдельном диапазоне (например, E2:E10) и передайте его третьим аргументом:

=NETWORKDAYS(A2; B2; E2:E10)

Функция NETWORKDAYS считает понедельником–пятницей рабочими днями по умолчанию. Если ваша рабочая неделя отличается (например, смена 2/2 или работа по выходным), используйте функцию NETWORKDAYS.INTL.

Работа со сменными графиками (NETWORKDAYS.INTL)

Эта функция позволяет задать свой код выходных дней.

=NETWORKDAYS.INTL(A2; B2; "код_выходных"; праздники)

Популярные коды:

  • "0000011" — выходные суббота и воскресенье (стандарт).
  • "1111110" — выходной только воскресенье.
  • "0000001" — выходной только понедельник.
  • "1100000" — выходные пятница и суббота.

Планирование: дата окончания работ (WORKDAY)

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

Формула:

=WORKDAY(начальная_дата; количество_дней; [праздники])

Пример: Дата старта в A2, длительность 10 рабочих дней в B2, праздники в E2:E5. =WORKDAY(A2; B2; E2:E5) вержет дату завершения, пропустив все выходные и указанные праздники.

Аналогично существует WORKDAY.INTL для нестандартных графиков работы.

Частые ошибки

  1. Текст вместо даты. Если формула возвращает ошибку #ЗНАЧ!, проверьте, что ячейки действительно содержат даты, а не текст. Дата должна выравниваться по правому краю ячейки по умолчанию.
  2. Неверный порядок дат. В DATEDIF начальная дата обязательно должна быть меньше конечной, иначе будет ошибка #ЧИСЛО!. В обычном вычитании (B2-A2) получится отрицательное число.
  3. Игнорирование високосных годов. При ручном расчете дней легко ошибиться. Функции Excel учитывают високосные годы автоматически.
  4. Лишние пробелы. При импорте данных из других систем в ячейках могут остаться пробелы. Используйте функцию =TRIM() или «Текст по столбцам» для очистки.

FAQ

Как посчитать возраст человека на текущую дату? Используйте формулу: =DATEDIF(A2; СЕГОДНЯ(); "y"), где A2 — дата рождения. Функция СЕГОДНЯ() автоматически обновляется при открытии файла.

Можно ли посчитать разницу во времени (часы и минуты)? Да. Вычтите дату с временем из другой даты с временем. Чтобы увидеть результат в часах, примените к ячейке пользовательский формат [ч]:мм. Квадратные скобки позволяют сумме часов превышать 24.

Что делать, если DATEDIF не работает? Функция является устаревшей (скрытой), но поддерживается ради совместимости. Если она недоступна (крайне редкие случаи), используйте комбинацию: (ГОД(B2)-ГОД(A2))*12 + МЕСЯЦ(B2)-МЕСЯЦ(A2) для месяцев, но это менее точно для дней.