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

Как пользоваться DATEDIF в Excel — дни, месяцы и годы между датами

6 min read Excel Обновлено 20 Dec 2025
DATEDIF в Excel: дни, месяцы, годы
DATEDIF в Excel: дни, месяцы, годы

Кратко

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

Зачем это нужно

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

Excel: диаграммы и таблицы с датами

Синтаксис DATEDIF

=DATEDIF(start_date, end_date, unit)

Где:

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

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

=DATEDIF(A1,B1,"D")

Важно: start_date должен быть раньше end_date. Если даты перепутаны местами, функция вернёт ошибку.

Единицы измерения (unit)

СокращениеОписание
YПолное число лет между датами
MПолное число месяцев между датами
DЧисло дней между датами
MDЧисло дней с вычитанием полных лет и месяцев
YMЧисло месяцев с вычитанием полных лет
YDЧисло дней, если считать даты в одном году (исключая полные годы)

Эти единицы позволяют получать разные представления интервала: общие дни, целые месяцы или комбинированные представления “годы + месяцы + дни”.

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

Самый простой случай — получить количество дней, месяцев или лет:

=DATEDIF($A$2,$B$2,"D")
=DATEDIF($A$2,$B$2,"M")
=DATEDIF($A$2,$B$2,"Y")

Чтобы получить недели, разделите разницу в днях на 7:

=DATEDIF($A$2,$B$2,"D")/7

Учтите: это даёт дробное число недель. Если нужно целое число полных недель — используйте функцию INT:

=INT(DATEDIF($A$2,$B$2,"D")/7)

Перед применением убедитесь, что ячейки с датами действительно имеют формат «Дата», а ячейка результата — числовой формат.

Таблица Excel с двумя датами для примера

Составные единицы: MD, YM, YD — что они дают

Составные единицы позволяют вывести интервал, исключив более крупные величины:

  • YD считает разницу в днях, предполагая, что даты находятся в одном году (то есть игнорирует целые годы).
  • YM считает месяцы, игнорируя целые годы.
  • MD считает дни, игнорируя целые месяцы и годы.

Пример: если нужно вывести интервал в виде “X лет Y месяцев Z дней”, комбинируем три вызова 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") & " дн."

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

Для удобства при наборе длинной формулы используйте Alt+Enter в строке формул, чтобы разбить выражение на строки.

Примеры и сценарии применения

  1. Возраст человека на текущую дату:
=DATEDIF(B2,TODAY(),"Y") & " лет " & DATEDIF(B2,TODAY(),"YM") & " мес."

(B2 — дата рождения)

  1. Срок гарантии в месяцах между датой покупки и датой возврата:
=DATEDIF(A2,B2,"M")
  1. Сколько дней осталось до дедлайна:
=DATEDIF(TODAY(),C2,"D")

(C2 — дата дедлайна)

Объединение нескольких DATEDIF в одной формуле

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

Использование DATEDIF с простыми единицами в Excel

Если вы часто используете такую комбинацию, можно оформить пользовательскую функцию через LAMBDA (в версиях Excel, где доступна LAMBDA), чтобы вызывать её по имени.

Когда DATEDIF может подвести (примеры ошибок и ограничения)

  • Ошибка при перепутанных дат: если start_date позже end_date, функция вернёт ошибку. Проверяйте порядок дат перед вызовом.
  • Неправильные форматы: если Excel не распознаёт значение как дату (текст вместо даты), результат будет ошибочным или некорректным.
  • Поведение при високосных годах и разных длинах месяцев корректно учитывается, но это может сбивать с толку: MD и YM игнорируют целые месяцы/годы, поэтому воспринимать результаты нужно осознанно.
  • DATEDIF не умеет учитывать только рабочие дни. Для рабочих дней используйте NETWORKDAYS или NETWORKDAYS.INTL.
  • DATEDIF исторически документирован не во всех версиях Excel. Это не означает, что её нельзя использовать, но будьте осторожны при переносе файлов в старые/редкие сборки.

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

  • Простое вычитание дат: B2-A2 даёт число дней между датами (если обе ячейки в формате даты).
  • YEARFRAC(start,end) возвращает дробное количество лет (полезно для расчёта процентных периодов или амортизации).
  • NETWORKDAYS(start,end,holidays) считает рабочие дни, исключая выходные и заданные праздники.
  • INT и ROUND можно применять для округления недель и месяцев, если требуется определённый формат вывода.

Мини-руководство: шаблон формул (cheat sheet)

  • Дни между датами:
=DATEDIF(A1,B1,"D")
  • Полные месяцы между датами:
=DATEDIF(A1,B1,"M")
  • Полные годы между датами:
=DATEDIF(A1,B1,"Y")
  • Полные недели:
=INT(DATEDIF(A1,B1,"D")/7)
  • Формат “Y лет M мес. D дн.”:
=DATEDIF(A1,B1,"Y") & " лет " & DATEDIF(A1,B1,"YM") & " мес. " & DATEDIF(A1,B1,"MD") & " дн."
  • Рабочие дни между датами (с учётом праздников в диапазоне H1:H10):
=NETWORKDAYS(A1,B1,H1:H10)

Тесты и критерии приёмки

Критерии приёмки для проверок шаблона “Y лет M мес D дн”:

  • Ввод: A1=2020-02-28, B1=2021-03-01 → Ожидаемый вывод: 1 год 0 мес 1 дн (проверить обработку високосного года).
  • Перестановка дат: если A1>B1 — формула должна выдавать понятную ошибку или предварительно менять порядок.
  • Текстовые даты: если A1 содержит текст “1 марта 2021”, Excel должен распознать или вернуть ошибку формата.
  • Пограничные случаи: одинаковые даты → 0 лет 0 мес 0 дн.

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

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

  • Для HR: используйте шаблон “возраст сотрудника” и проверяйте формат даты рождения при вводе.
  • Для бухгалтера: применяйте YEARFRAC при расчётах пропорции оплаты или процентов; используйте NETWORKDAYS для расчёта рабочих дней в расчёте зарплаты.
  • Для менеджера проекта: выводите оставшиеся дни до дедлайна с TODAY() и уведомлениями при достижении порога.

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

  • Даты в Excel — это числа. Вычитание двух дат даёт разницу в днях.
  • DATEDIF удобен для «человеческого» вывода (годы/месяцы/дни), а простое вычитание — для быстрых вычислений и графиков.
  • Если нужно учитывать только рабочие дни — думайте не о DATEDIF, а о NETWORKDAYS.

Использование составных единиц DATEDIF в Excel

Советы по удобству и поддержке формул

  • Зафиксируйте ссылки ($A$2) при автозаполнении, если используете опорные даты.
  • Для читабельности длинных формул используйте Alt+Enter в строке формул.
  • Если делаете шаблон для команды — добавьте контрольные строки с тестовыми парами дат.
  • Документируйте, что ваша формула делает (краткая подсказка в комментарии ячейки или отдельная вкладка “Описание”).

Примеры LAMBDA (для продвинутых пользователей)

Если в вашей версии Excel доступна LAMBDA, вы можете обернуть повторяющийся шаблон в функцию:

=LAMBDA(start,end, DATEDIF(start,end,"Y") & " лет " & DATEDIF(start,end,"YM") & " мес. " & DATEDIF(start,end,"MD") & " дн.")

Сохраните её в имени функции, например AgeText, и затем вызывайте как:

=AgeText(A2,B2)

Короткий глоссарий

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

Риски и рекомендации

  • Проверяйте формат ввода: неправильный формат — частая причина ошибок.
  • Для совместимости с другими инструментами (Google Sheets, LibreOffice) тестируйте файлы: реализация функций может отличаться.
  • Для корпоративных шаблонов добавьте валидацию данных и защиту ячеек, чтобы пользователи не меняли формулы.

Быстрый чек-лист внедрения в шаблон

  1. Убедитесь, что столбцы с датами имеют формат «Дата».
  2. Пометьте ячейки с результатом как «Общий» или «Числовой».
  3. Добавьте примеры и тестовые пары дат.
  4. Если нужно — реализуйте LAMBDA и документируйте имя функции.
  5. Защитите формулы от случайного изменения.

Объединение нескольких DATEDIF в одной формуле Excel

Итог

DATEDIF — простой и надёжный инструмент для получения целых интервалов между датами в Excel. Он полезен для HR, бухгалтерии и управления проектами. Комбинируйте Y, YM и MD, чтобы получить читабельный формат «годы, месяцы, дни», используйте NETWORKDAYS для рабочих дней и YEARFRAC для дробных лет. Добавьте тесты и шаблоны в ваш файл, чтобы снизить риск ошибок и упростить поддержку.

Ключевые ресурсы: встроенные функции Excel (DATEDIF, NETWORKDAYS, YEARFRAC), TODAY() для динамических отчётов, LAMBDA для повторного использования логики.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как экономить мобильные данные в Apple Music
Мобильные данные

Как экономить мобильные данные в Apple Music

Персональные результаты Google Assistant на блокировке
Android.

Персональные результаты Google Assistant на блокировке

Настройка уведомлений Outlook: отключить и адаптировать
Справка

Настройка уведомлений Outlook: отключить и адаптировать

Добавить дату и время в Google Sheets
Электронные таблицы

Добавить дату и время в Google Sheets

Таймер Помодоро на Python с Tkinter
Python

Таймер Помодоро на Python с Tkinter

Как отключить 5G на Android — Samsung и Pixel
Android.

Как отключить 5G на Android — Samsung и Pixel