Как рассчитать сроки в Excel: формулы, примеры и лайфхаки

Расчёт сроков в Microsoft Excel — одна из самых востребованных задач как в офисной работе, так и в личных проектах. Вычислить разницу между датами, спрогнозировать дедлайн, учесть рабочие дни или автоматически продлить срок действия договора — всё это можно сделать с помощью формул. Но многие пользователи сталкиваются с ошибками: неправильный формат ячеек, игнорирование выходных или неверное округление результатов.

В этой статье разберём основные и продвинутые методы расчёта сроков, включая работу с календарными и рабочими днями, учёт праздников и динамическое изменение дат. Особое внимание уделим типичным ошибкам, которые портят результаты, и покажем, как их избежать. Если вы когда-нибудь получали в ответе странные числа вместо дат — здесь найдёте объяснение и решение.

Для начала убедитесь, что ваш Excel настроен корректно: формат ячеек с датами должен быть Дата или Общий, а не Текстовый. Иначе формулы будут возвращать ошибочные значения. Также проверьте региональные настройки — в некоторых странах даты отображаются в формате ММ/ДД/ГГГГ, а не ДД.ММ.ГГГГ, что может сбить с толку.

═══

1. Базовые формулы для расчёта разницы между датами

Самый простой способ узнать, сколько дней прошло между двумя датами — вычесть одну из другой. Например, если в ячейке A1 указана дата начала проекта (01.01.2026), а в B1 — дата окончания (15.01.2026), формула =B1-A1 вернёт 14 (количество дней).

Но что, если нужно получить результат в месяцах или годах? Здесь поможет функция ДРОБН.ГОД() (или YEARFRAC в английской версии). Она вычисляет долю года между двумя датами с учётом выбранного метода расчёта. Например:

=ДРОБН.ГОД(A1; B1; 1)

где 1 — метод расчёта (актуальный/актуальный). Результат будет в виде десятичной дроби (например, 0,038 для 14 дней из 365), которую можно умножить на 12, чтобы получить месяцы.

  • 📅 Дни: =B1-A1 — разница в календарных днях.
  • 📊 Месяцы: =ДРОБН.ГОД(A1; B1; 1)*12 — приблизительное количество месяцев.
  • 🎯 Годы: =ДРОБН.ГОД(A1; B1; 1) — доля года.
  • ⚠️ Округление: используйте =ОКРУГЛ(B1-A1; 0), если нужны целые дни.

Важно: функция ДРОБН.ГОД учитывает високосные годы, поэтому её результат точнее, чем простое деление на 365. Например, между 01.01.2026 и 01.01.2026 будет ровно 1 год, даже несмотря на 29 февраля 2026.

📊 Как часто вы рассчитываете сроки в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

═══

2. Работа с рабочими днями: исключаем выходные

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

Формула:

=ЧИСТРАБДНИ(A1; B1)

где A1 и B1 — начальная и конечная даты. По умолчанию функция считает субботу и воскресенье выходными. Если нужно указать другие дни, используйте третий аргумент:

=ЧИСТРАБДНИ(A1; B1; C1:C7)

где C1:C7 — диапазон с номерами дней недели (1 — понедельник, 7 — воскресенье), которые считаются выходными.

⚠️ Внимание: Если в вашей стране выходные не суббота-воскресенье (например, пятница-суббота), обязательно укажите их в третьем аргументе. Иначе расчёт будет некорректным.

Пример: чтобы посчитать рабочие дни между 01.01.2026 (понедельник) и 10.01.2026 (среда), исключив субботу и воскресенье, формула вернёт 7 (а не 9 календарных дней).

Убедиться, что даты в формате Дата

Проверить региональные настройки выходных

Указать праздничные дни (если нужно)

Округлить результат до целых дней-->

═══

3. Учёт праздников и нерабочих дней

Функция ЧИСТРАБДНИ не учитывает праздники по умолчанию. Чтобы исключить их из расчёта, добавьте четвёртый аргумент — диапазон с датами праздников. Например, если в ячейках D1:D5 перечислены праздники (например, 01.01.2026, 07.01.2026 и т.д.), формула примет вид:

=ЧИСТРАБДНИ(A1; B1; ; D1:D5)

Обратите внимание на двойную точку с запятой (;;) — она означает, что третий аргумент (выходные дни) не указан, и используются стандартные суббота-воскресенье.

Праздник Дата (2026) Формула для исключения
Новый год 01.01.2026 =ЧИСТРАБДНИ(A1; B1; ; {"01.01.2026"})
Рождество 07.01.2026 =ЧИСТРАБДНИ(A1; B1; ; {"01.01.2026"; "07.01.2026"})
8 Марта 08.03.2026 =ЧИСТРАБДНИ(A1; B1; ; D1:D3) (где D1:D3 — диапазон с праздниками)

Если праздники повторяются ежегодно (например, 01.01), можно создать отдельный лист с их перечнем и ссылаться на него. Это упростит обновление данных в будущем.

═══

4. Добавление дней, месяцев или лет к дате

Часто требуется не только посчитать разницу, но и сдвинуть дату на определённый период. Например, чтобы узнать дедлайн через 30 рабочих дней или дату окончания абонемента через 6 месяцев.

Для добавления календарных дней используйте простую арифметику:

=A1 + 30

где A1 — начальная дата, а 30 — количество дней.

Для рабочих дней подойдёт функция РАБДЕНЬ() (или WORKDAY):

=РАБДЕНЬ(A1; 30; D1:D5)

где D1:D5 — диапазон с праздниками.

Чтобы добавить месяцы или годы, используйте ДАТАМЕС() (или EDATE):

=ДАТАМЕС(A1; 6)

— вернёт дату через 6 месяцев. Для лет умножьте месяцы на 12:

=ДАТАМЕС(A1; 12)
⚠️ Внимание: Функция ДАТАМЕС корректно обрабатывает конец месяца. Например, если к 31.01.2026 добавить 1 месяц, результат будет 29.02.2026 (а не 31.02.2026, которого не существует).

═══

5. Расчёт сроков с учётом времени (часы, минуты)

Если важно учитывать не только дату, но и время, используйте функции ДАТАЗНАЧ() и ВРЕМЗНАЧ() для объединения даты и времени в одну ячейку. Например, чтобы посчитать разницу между 01.01.2026 14:30 и 02.01.2026 09:15:

1. Введите даты с временем в ячейки A1 и B1 (формат ДД.ММ.ГГГГ ЧЧ:ММ).

2. Используйте формулу:

=B1 - A1

3. Настройте формат ячейки с результатом как [ч]:мм, чтобы отобразить полное количество часов.

Если нужно получить отдельно дни, часы и минуты, используйте:

=ЦЕЛОЕ(B1 - A1) & " дн. " & ТЕКСТ(ОСТАТ(B1 - A1; 1); "[ч]:мм")

Результат будет в виде 1 дн. 18:45.

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

Excel хранит даты и время в виде чисел, где 1 соответствует 01.01.1900, а дробная часть — времени (например, 0,5 = 12:00). Поэтому разница между двумя датами возвращается в виде десятичного числа, где целая часть — дни, а дробная — время.

═══

6. Динамические сроки: автоматические напоминания

Excel позволяет создавать динамические сроки, которые обновляются автоматически. Например, чтобы отслеживать, сколько дней осталось до дедлайна, или выделять просроченные задачи.

Формула для остатка дней до даты в ячейке B1:

=B1 - СЕГОДНЯ()

Если результат отрицательный — срок истёк. Чтобы выделить такие ячейки красным, используйте условное форматирование:

1. Выделите ячейку с формулой.

2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Меньше.

3. Укажите значение 0 и выберите красный цвет.

Для более сложных сценариев (например, напоминание за 3 дня до дедлайна) комбинируйте функции:

=ЕСЛИ(B1 - СЕГОДНЯ() <= 3; "Срочно!"; "")

═══

7. Типичные ошибки и как их избежать

Даже опытные пользователи Excel иногда получают неожиданные результаты при работе с датами. Вот самые распространённые ошибки:

  • 🔢 Формат ячеек: Если ячейка отформатирована как Текст, Excel не распознаёт дату. Исправьте формат на Дата или Общий.
  • 📅 Региональные настройки: В американском формате 01/02/2026 означает 1 февраля, а не 2 января. Проверьте настройки в Файл → Параметры → Язык.
  • ⚠️ Отрицательные даты: Excel не поддерживает даты до 01.01.1900. Для исторических расчётов используйте альтернативные методы.
  • 🔄 Автоматический пересчёт: Если формулы не обновляются, проверьте режим расчёта в Формулы → Параметры вычислений.

Ещё одна частая проблема — ошибка #ЗНАЧ! при вычитании дат. Она возникает, если одна из ячеек содержит текст вместо даты. Чтобы проверить, используйте функцию ЕЧИСЛО():

=ЕСЛИ(ЕЧИСЛО(A1); "Дата корректна"; "Ошибка: не дата")

═══

FAQ: Ответы на частые вопросы

Как посчитать количество полных недель между двумя датами?

Используйте формулу =ЦЕЛОЕ((B1 - A1)/7), где A1 и B1 — начальная и конечная даты. Функция ЦЕЛОЕ округлит результат до целых недель.

Почему функция ЧИСТРАБДНИ возвращает ошибку #ИМЯ??

Это происходит, если в вашей версии Excel функция называется иначе (например, в английской версии — NETWORKDAYS). Проверьте язык интерфейса или используйте ЧИСТРАБДНИ.МЕЖД для новых версий.

Как рассчитать срок беременности в неделях и днях?

Если в A1 дата последней менструации, формула будет:

=ЦЕЛОЕ((СЕГОДНЯ() - A1)/7) & " нед. " & ОСТАТ(СЕГОДНЯ() - A1; 7) & " дн."

Результат: 12 нед. 3 дн.

Можно ли в Excel учитывать летнее/зимнее время при расчёте часов?

Нет, Excel не поддерживает автоматический переход на летнее/зимнее время. Если это критично, добавьте корректировку вручную (например, +1 час для летнего периода).

Как посчитать количество кварталов между двумя датами?

Используйте комбинацию функций:

=ДРОБН.ГОД(A1; B1; 1)*4

или более точный метод с учётом начала квартала:

=(ГОД(B1) - ГОД(A1))*4 + МЕСЯЦ(B1)/3 - МЕСЯЦ(A1)/3