Гид по технологиям

DATEDIF в Excel: как точно считать разницу между датами

7 min read Excel Обновлено 30 Mar 2026
DATEDIF в Excel — считать разницу между датами
DATEDIF в Excel — считать разницу между датами

Иллюстрация мощных диаграмм в Excel

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

Что такое DATEDIF и зачем она нужна

DATEDIF — встроенная функция Excel, специально созданная для расчёта разницы между двумя датами. Она возвращает количество дней, месяцев или лет между датами в зависимости от выбранной единицы.

Определение в одно предложение: DATEDIF(start_date, end_date, unit) вычисляет интервал между start_date и end_date в указанной единице unit.

Синтаксис (формула):

=DATEDIF(start_date, end_date, unit)

Аргументы:

  • start_date — ранняя (первая) дата.
  • end_date — более поздняя (вторая) дата.
  • unit — текстовая строка, указывающая единицу результата (например, “Y”, “M”, “D”).

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

=DATEDIF(A1,B1,"D")

Важно: start_date должен быть раньше end_date. Если первый аргумент позже второго, DATEDIF выдаст ошибку.

Единицы измерения в DATEDIF

ЕдиницаЗначение
YПолное количество лет между датами
MПолное количество месяцев между датами
DКоличество дней между датами
MDКоличество дней между датами после вычитания полных лет и месяцев
YMКоличество полных месяцев после вычитания полных лет
YDКоличество дней между датами, если считать их в рамках одного года

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

Базовые сценарии: дни, недели, месяцы, годы

Для простого сравнения двух дат в днях используйте DATEDIF с “D” или функцию DAYS:

=DATEDIF(A2,B2,"D")
=ДНИ(B2;A2)  /* в русской локали Excel есть функция ДНИ */

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

=DATEDIF(A2,B2,"D")/7         /* возвращает дробное число недель */
=INT(DATEDIF(A2,B2,"D")/7)    /* целое число полных недель */

Пример: между 17 марта 2021 и 20 мая 2023 ровно 2 года, 2 месяца и 3 дня (то есть 794 дня). Целых недель в этом периоде: INT(794/7)=113.

Советы по форматам ячеек:

  • Даты должны быть в формате даты. Excel воспринимает их как числа.
  • Ячейка с результатом лучше форматировать как “Общий” или “Числовой”, иначе Excel может отобразить ответ как дату.

Таблица Excel с двумя датами для расчёта разницы

Как получить комбинированный результат (годы, месяцы, дни)

Иногда нужно не одно число, а читабельный формат типа “2 Years 2 Months 3 Days”. В Excel можно объединить несколько DATEDIF:

=DATEDIF(A2,B2,"Y")&" Years "&DATEDIF(A2,B2,"YM")&" Months "&DATEDIF(A2,B2,"MD")&" Days."

На русском интерфейсе формула выглядит так же с единицами в кавычках, но текст в результате можно локализовать:

=DATEDIF(A2,B2,"Y")&" лет "&DATEDIF(A2,B2,"YM")&" мес "&DATEDIF(A2,B2,"MD")&" дн."

Ampersand (&) соединяет строки. Первой ставится знак равенства только перед первой функцией.

DATEDIF вычисляет разницу в днях в Excel

Совет: при длинных формулах нажмите Alt+Enter в строке формул, чтобы сделать перенос и улучшить читабельность. Если формула часто используется — можно оформить её как LAMBDA и сохранить.

Составные единицы: когда и как применять

  • YD: полезна, когда нужно узнать, сколько дней осталось до даты в том же календарном году, игнорируя полные годы.
  • YM: возвращает месяцы вне учёта целых лет — удобно для вывода “X лет Y месяцев”.
  • MD: даёт остаток в днях после вычитания полных лет и месяцев.

Использование составных единиц (MD, YM, YD) в DATEDIF

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

Альтернативные подходы и когда их применять

  • Простая разница дней: B2-A2 (или функция ДНИ/DAYS) — быстро и понятно.
  • Рабочие дни (без выходных): NETWORKDAYS(start,end,[holidays]) — считает только рабочие дни.
  • Дробные годы: YEARFRAC(start,end,[basis]) — возвращает долю года, удобно для процентов и амортизации.
  • INT(DATEDIF(…)/7) — для целых недель.
  • LAMBDA — если нужна переиспользуемая кастомная функция для команды.

Примеры:

=NETWORKDAYS(A2,B2)                /* рабочие дни между датами */
=YEARFRAC(A2,B2)                    /* доля года */
=DAYS(B2,A2)                         /* альтернативный синтаксис */

Типичные ошибки и подводные камни

  • Перепутанные аргументы (start_date > end_date) — DATEDIF вернёт ошибку.
  • MD и другие составные единицы могут вести себя неинтуитивно при концах месяцев.
  • Формат ячейки с результатом случайно остаётся как «Дата» — тогда вы увидите странное отображение.
  • Разница в локалях: в русской Excel функции и разделители аргументов могут называться иначе (например, ДНИ вместо DAYS; разделитель аргументов — точка с запятой в некоторых локализациях).

Решения:

  • Всегда проверяйте несколько примеров с известными ответами.
  • Используйте простые тестовые пары дат: одинаковая дата, даты с разницей один день, конец/начало месяца, високосный год.

Критерии приёмки (как проверить, что формула работает)

  • Тест 1: start_date = end_date -> результат D = 0, Y = 0, M = 0.
  • Тест 2: соседние даты (например, 28.02.2020 и 01.03.2020) -> корректная обработка високосного года.
  • Тест 3: переход через год (например, 31.12.2021 и 01.01.2022) -> YD и MD дают ожидаемые значения.
  • Тест 4: рабочие дни с праздником -> NETWORKDAYS учитывает дополнительный список праздников.

Быстрый справочник (cheat sheet) — формулы и шаблоны

  • Разница в днях:
=DATEDIF(A2,B2,"D")
=DAYS(B2,A2)
  • Разница в месяцах или годах:
=DATEDIF(A2,B2,"M")   /* месяцы */
=DATEDIF(A2,B2,"Y")   /* годы */
  • Целые недели:
=INT(DATEDIF(A2,B2,"D")/7)
  • Читабельный формат “X лет Y мес Z дн”:
=DATEDIF(A2,B2,"Y")&" лет "&DATEDIF(A2,B2,"YM")&" мес "&DATEDIF(A2,B2,"MD")&" дн."
  • Рабочие дни:
=NETWORKDAYS(A2,B2)                      /* без учёта праздников */
=NETWORKDAYS(A2,B2,HolidaysRange)        /* с учётом праздников */

Роль-ориентированные чеклисты

Для аналитика данных:

  • Проверить формат ячеек как “Дата”.
  • Сравнить DATEDIF с DAYS и простым вычитанием на контрольных наборах.
  • Автоматизировать тесты (несколько кейсов) в отдельном листе.

Для HR (возраст сотрудников):

  • Используйте комбинацию Y, YM, MD для выдачи возрастов в формате “X лет Y мес”.
  • Учитывайте дату найма и конец расчётного периода.

Для менеджера проектов:

  • Для дедлайнов используйте DATEDIF для расчёта оставшегося времени.
  • Для рабочих дней — NETWORKDAYS.

Пример практического использования: шаг за шагом

  1. Убедитесь, что в A2 и B2 форматы — “Дата”.
  2. В C2 введите: =DATEDIF(A2,B2,"Y") — количество полных лет.
  3. В D2 введите: =DATEDIF(A2,B2,"YM") — дополнительные месяцы.
  4. В E2 введите: =DATEDIF(A2,B2,"MD") — остаток в днях.
  5. В F2 объедините: =C2&" лет "&D2&" мес "&E2&" дн."

Проверьте результат на контрольных данных: даты с известной разницей.

Применение DATEDIF с простыми единицами (D, M, Y) в Excel

Мини-методология: как выбирать единицу

  • Нужны точные дни — используйте “D”.
  • Хотите целые месяцы или годы — “M” или “Y”.
  • Для читаемого формата используйте комбинацию Y + YM + MD.
  • Для рабочих дней — NETWORKDAYS.
  • Для финансовых расчётов с дробью года — YEARFRAC.

Ментальные модели и эвристики

  • “Даты — это числа”: думайте о датах как о последовательных числах; Excel так и делает.
  • “Отнимай полные единицы последовательно”: сначала года, затем месяцы, затем дни (это логика Y, YM, MD).
  • “Проверяй крайние случаи”: конец февраля, високосный год, конец месяца.

Примеры, где DATEDIF не подходит (контрпримеры)

  • Если нужно посчитать рабочие (без выходных) или банковские дни — используйте NETWORKDAYS.
  • Если требуется дробная доля года (например, 2.58 года) для процентов — YEARFRAC лучше.
  • Если start_date > end_date и вы хотите отрицательный результат — DATEDIF не вернёт корректный отрицательный интервал.

Тесты и приёмка (короткие тест-кейсы)

  • Одинаковые даты -> 0 дней.
  • 28.02.2020 -> 01.03.2020 -> корректный учёт 2020 как високосного.
  • 31.01.2021 -> 28.02.2021 -> проверка MD и YM.

1‑строчная глоссарий

  • DATEDIF — функция Excel, возвращающая интервал между двумя датами в указанной единице (Y, M, D, MD, YM, YD).

Факты и числа (fact box)

  • 1 неделя = 7 дней.
  • 1 год = 12 месяцев.
  • Високосный год добавляет 1 день (29 февраля) примерно каждые 4 года, что влияет на расчёт дней.

Визуальная помощь: как выбрать метод (Mermaid)

flowchart TD
  A[Нужно сравнить даты?] --> B{Требуется рабочие дни?}
  B -- Да --> C[NETWORKDAYS]
  B -- Нет --> D{Нужен читабельный формат?}
  D -- Да --> E[DATEDIF Y + YM + MD]
  D -- Нет --> F{Хотите дробные годы?}
  F -- Да --> G[YEARFRAC]
  F -- Нет --> H[DATEDIF с нужной единицей 'D/M/Y']

Короткая инструкция по миграции (советы при переносе шаблонов)

  • Проверяйте локализацию функций (ДНИ vs DAYS, разделители аргументов).
  • Убедитесь, что формат дат совпадает по всем листам.
  • Добавьте контрольный лист с тестами для автоматической валидации формул после миграции.

Комбинирование нескольких DATEDIF в одну формулу Excel

Короткое резюме и рекомендации

  • Используйте DATEDIF для большинства задач по разнице между датами; она простая и понятная.
  • Для специальных требований (рабочие дни, дробные годы, кастомные правила) применяйте NETWORKDAYS, YEARFRAC или LAMBDA.
  • Всегда прогоняйте тестовые кейсы с известными результатами и учитывайте локализацию Excel.

Важно: перед автоматизацией в производственных шаблонах пройдите базовую валидацию формул на контрольных данных.

Ключевые действия прямо сейчас:

  • Протестируйте DATEDIF на трёх парах дат (одна и та же дата, соседние даты, межвисокосный переход).
  • Если нужно считать рабочие дни — переходите на NETWORKDAYS и заведите таблицу праздников.
  • Сохраните часто используемые сочетания как LAMBDA-функции для повторного использования.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

CSS font-family: как менять шрифты на сайте
Frontend

CSS font-family: как менять шрифты на сайте

График амортизации кредита в Excel — пошагово
Финансы

График амортизации кредита в Excel — пошагово

Разгон Raspberry Pi 4 — безопасный пошаговый гид
Аппаратное обеспечение

Разгон Raspberry Pi 4 — безопасный пошаговый гид

Как запустить Windows 11 на Mac — варианты и советы
Mac

Как запустить Windows 11 на Mac — варианты и советы

Мошенничество с возвратом средств через техподдержку
Безопасность

Мошенничество с возвратом средств через техподдержку

Диагональная обрезка в Canva — как сделать эффектно
Дизайн

Диагональная обрезка в Canva — как сделать эффектно