Как рассчитать период между датами в Excel: 5 рабочих способов с примерами

Расчёт временных интервалов — одна из самых востребованных задач в Microsoft Excel и Google Таблицах. Бухгалтерам нужно определять просрочки платежей, HR-специалисты считают стаж сотрудников, а менеджеры проектов контролируют сроки выполнения задач. Даже в быту пригодится умение вычислить разницу между двумя датами: сколько дней осталось до отпуска или сколько месяцев прошло с последнего ремонта.

Многие пользователи ошибочно думают, что для этого достаточно вычесть одну дату из другой. Но такой подход даёт только количество дней, а вот годы, месяцы или рабочие дни требуют специальных функций. Более того, Excel хранит даты как числа (где 1 — это 1 января 1900 года), и без знания нюансов можно получить некорректные результаты. В этой статье разберём 5 проверенных способов расчёта периодов — от базовых до продвинутых, с учётом выходных, праздников и даже часовых поясов.

———

1. Базовый метод: простое вычитание дат

Самый простой способ узнать разницу между двумя датами — вычесть их как числа. В Excel каждая дата имеет свой порядковый номер (например, 1 января 2026 года — это 45287). Когда вы выполняете операцию =B2-A2, программа автоматически преобразует результат в количество дней.

Этот метод подходит для быстрых расчётов, но имеет ограничения:

  • 📅 Только дни: результат всегда в днях, даже если вам нужны месяцы или годы.
  • Без учёта времени: если в ячейках указано время (например, 01.01.2026 14:30), оно будет проигнорировано.
  • 📊 Формат ячейки: результат может отобразиться как дата (например, 04.01.1900), если не установить формат Общий или Числовой.

Пример формулы для ячеек с датами в A1 (начало) и B1 (конец):

=B1-A1

Чтобы результат отображался в днях, выделите ячейку с формулой → нажмите Ctrl+1 → выберите формат Числовой без десятичных знаков.

⚠️ Внимание: Если в ячейках текст вместо дат (например, "01.01.2026" в формате текста), Excel вернёт ошибку #ЗНАЧ!. Исправьте формат ячеек на Дата через меню Главная → Формат → Формат ячеек.

———

2. Функция ДАТАРАЗН (DATEDIF): годы, месяцы и дни

Функция =ДАТАРАЗН() (или =DATEDIF() в английской версии) — это скрытая "жемчужина" Excel, которой нет в справочнике, но она работает во всех версиях программы. Она позволяет рассчитать разницу между датами в годах, месяцах или днях, а также комбинировать эти единицы.

Синтаксис функции:

=ДАТАРАЗН(начальная_дата; конечная_дата; единица_измерения)

Где единица_измерения может принимать значения:

  • "Y" — полные годы;
  • "M" — полные месяцы;
  • "D" — дни;
  • "YM" — месяцы без учёта годов;
  • "MD" — дни без учёта месяцев и годов;
  • "YD" — дни без учёта годов.

Примеры использования:

Формула Результат (для 01.01.2020 — 15.03.2026) Пояснение
=ДАТАРАЗН(A1;B1;"Y") 4 Полных лет между датами
=ДАТАРАЗН(A1;B1;"YM") 2 Месяцев без учёта полных лет
=ДАТАРАЗН(A1;B1;"MD") 14 Дней без учёта полных месяцев
=ДАТАРАЗН(A1;B1;"D") 1556 Общее количество дней

Важно: функция ДАТАРАЗН не учитывает високосные годы при расчёте дней ("D"). Для точных вычислений используйте комбинацию с =РАЗНДАТ().

📊 Какой формат периода вам нужнее всего?
Дни
Месяцы
Годы
Рабочие дни (без выходных)
Другое

———

3. Функция РАЗНДАТ: альтернатива с расширенными возможностями

Функция =РАЗНДАТ() (или =DATEDIF() в некоторых локализациях) — это более гибкий аналог ДАТАРАЗН, который поддерживает дополнительные параметры. Она доступна в Excel 2013 и новее, а также в Google Таблицах.

Синтаксис:

=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)

Допустимые значения для единица_измерения:

  • 📅 "d" — дни;
  • 📆 "m" — месяцы;
  • 🗓️ "y" — годы;
  • ⏳ "ym" — месяцы без учёта годов;
  • 🕒 "yd" — дни без учёта годов;
  • 📅🕒 "md" — дни без учёта месяцев и годов.

Ключевое отличие от ДАТАРАЗН: РАЗНДАТ корректно обрабатывает отрицательные значения (если конечная дата раньше начальной) и поддерживает високосные годы. Например, разница между 28.02.2020 и 01.03.2020 будет 2 дня (2020 год — високосный), тогда как ДАТАРАЗН может дать сбой.

Пример для расчёта стажа сотрудника (в годах, месяцах и днях):

=РАЗНДАТ(A2;B2;"y") & " лет, " & РАЗНДАТ(A2;B2;"ym") & " мес., " & РАЗНДАТ(A2;B2;"md") & " дн."

Где A2 — дата приёма на работу, B2 — текущая дата.

⚠️ Внимание: В Excel для Mac функция РАЗНДАТ может отсутствовать. Используйте ДАТАРАЗН или альтернативный метод с =ГОД(), =МЕСЯЦ() и =ДЕНЬ().

———

4. Расчёт рабочих дней: функция ЧИСТРАБДНИ

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

Синтаксис:

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

Где [праздники] — необязательный диапазон ячеек с датами праздников (например, D1:D10).

Пример для расчёта сроков выполнения задачи:

  • 📅 Начало проекта: 01.06.2026 (ячейка A1);
  • 📅 Дедлайн: 30.06.2026 (ячейка B1);
  • 🎉 Праздники: 12.06.2026 (День России) в ячейке C1.

Формула:

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

Результат: 20 рабочих дней (в июне 2026 года 21 рабочий день минус 1 праздничный).

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

———

5. Продвинутые сценарии: часовые пояса, время и динамические даты

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

Для таких задач комбинируйте функции:

  • =ВРЕМЗНАЧ() — преобразует текстовое время (например, "14:30") в числовой формат;
  • 🕐 =ЧАС(), =МИНУТЫ(), =СЕКУНДЫ() — извлекают компоненты времени;
  • 🌍 =СМЕЩ() — корректирует даты с учётом часовых поясов (например, =СМЕЩ(A1; 3/24; 0) добавляет 3 часа к дате в A1).

Пример расчёта длительности события в часах:

= (B1-A1) * 24

Где A1 — дата и время начала (например, 01.01.2026 10:00), B1 — дата и время окончания (01.01.2026 18:30). Результат: 8.5 часов.

Как учитывать летнее/зимнее время?

Excel не автоматически корректирует переход на летнее/зимнее время. Чтобы избежать ошибок:

1. Храните все даты в формате UTC (всемирное координированное время).

2. Используйте функцию =СМЕЩ() для ручной корректировки:

=СМЕЩ(A1; 0; 1/24)

(добавляет 1 час к дате в A1).

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

———

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

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

Ошибка 1: Текст вместо даты

Если ячейка содержит текст (например, "01.01.2026" как строку), функции вернут #ЗНАЧ!. Решение:

  • 🔄 Используйте =ДАТАЗНАЧ() для преобразования текста в дату:
    =ДАТАЗНАЧ(A1)
  • 📅 Или измените формат ячейки на Дата через Главная → Формат → Формат ячеек.

Ошибка 2: Отрицательные значения

Если конечная дата раньше начальной, ДАТАРАЗН вернёт #ЧИСЛО!. Решение:

  • 🔁 Поменяйте местами аргументы: =ДАТАРАЗН(B1;A1;"D").
  • 📉 Или используйте =АБС() для модуля:
    =АБС(ДАТАРАЗН(A1;B1;"D"))

Ошибка 3: Неправильный формат результата

Excel может отобразить результат как дату (например, 04.01.1900 вместо 4). Решение:

  • 📊 Выделите ячейку → Ctrl+1 → выберите формат Общий или Числовой.
⚠️ Внимание: В Excel для Mac функция ДАТАРАЗН может возвращать ошибку при расчёте месяцев ("M") для дат в одном календарном месяце (например, 15.01.2026 и 30.01.2026). В таких случаях используйте =ЕСЛИОШИБКА(ДАТАРАЗН(...); 0).

———

7. Автоматизация: динамические даты и Power Query

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

Примеры динамических формул:

  • 📅 Текущая дата: =СЕГОДНЯ();
  • Дни до Нового года:
    =ДАТА(ГОД(СЕГОДНЯ())+1;1;1)-СЕГОДНЯ()
  • 📊 Возраст в годах (для даты рождения в A1):
    =ДАТАРАЗН(A1;СЕГОДНЯ();"Y")

Для сложных расчётов (например, анализ временных рядов) используйте Power Query:

1. Перейдите на вкладку ДанныеПолучить данныеИз других источниковПустая запрос.

2. В редакторе Power Query добавьте столбец с формулой:

= Duration.Days([EndDate] - [StartDate])

3. Загрузите результат обратно в Excel.

———

FAQ: Частые вопросы по расчёту периодов в Excel

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

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

=ЦЕЛОЕ((B1-A1)/7)

Где A1 и B1 — начальная и конечная даты. Функция ЦЕЛОЕ() округляет результат до целого числа недель.

❓ Почему ДАТАРАЗН возвращает ошибку #ИМЯ?

Это означает, что функция не распознаётся. Возможные причины:

  • 🌍 Вы используете нерусскую версию Excel (попробуйте =DATEDIF).
  • 📋 Опечатка в названии функции (проверьте регистр: ДАТАРАЗН, а не датаразн).
  • 🔄 В Excel 2016 и новее функция может быть отключена. Переустановите программу или используйте альтернативу с =РАЗНДАТ.

❓ Как рассчитать период с учётом только рабочих часов (например, с 9:00 до 18:00)?

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

=МАКС(0; (КОНМЕСЯЦА(B1)-НАЧМЕСЯЦА(B1)) - (КОНМЕСЯЦА(A1)-НАЧМЕСЯЦА(A1))) * 9 -

(ЕСЛИ(ДЕНЬНЕД(B1)=7; ВРЕМЯ(18;0;0)-ВРЕМЗНАЧ(ТЕКСТ(B1;"hh:mm")); 0) +

ЕСЛИ(ДЕНЬНЕД(A1)=7; ВРЕМЗНАЧ(ТЕКСТ(A1;"hh:mm"))-ВРЕМЯ(9;0;0); 0))

Где A1 и B1 — даты с временем начала и конца, а 9 — количество рабочих часов в день.

❓ Можно ли рассчитать период между датами в разных часовых поясах?

Да, но Excel не поддерживает часовые пояса напрямую. Решения:

  • 🌐 Преобразуйте обе даты в UTC (универсальное время) с помощью =СМЕЩ().
  • ⏰ Создайте отдельный столбец с поправками (например, +3 часа для Москвы).
  • 📊 Используйте надстройки вроде Kutools for Excel с поддержкой часовых поясов.

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

Формула:

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

Например, для 15.01.2026 и 20.03.2026 результат будет 2 (месяца), даже если дни не совпадают.

———