Расчёт временных интервалов — одна из самых востребованных задач в 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. Храните все даты в формате 2. Используйте функцию (добавляет 1 час к дате в 3. Для массовых данных создайте отдельный столбец с поправками по часовым поясам.Как учитывать летнее/зимнее время?
UTC (всемирное координированное время).=СМЕЩ() для ручной корректировки:=СМЕЩ(A1; 0; 1/24)A1).
———
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 (месяца), даже если дни не совпадают.
———