Функция DATEDIF в Excel

Функция DATEDIF (РАЗНДАТ) в Excel возвращает разницу между двумя значениями даты в годах, месяцах или днях. Функция DATEDIF (Date + Dif) — это функция «совместимости», пришедшая из Lotus 1-2-3. По неизвестным причинам он документирован только в Excel 2000, но с тех пор вы можете использовать его в своих формулах во всех версиях Excel.

Примечание. Excel не поможет вам заполнить аргументы для РАЗНДАТ, как другие функции, но он будет работать при правильной настройке.

Что делает функция DATEDIF в Excel?

Функция DATEDIF в Excel позволяет получить количество дней, месяцев или лет между двумя датами.

Возвращаемое значение

Число, представляющее время между двумя датами.

Аргументы

  • start_date — дата начала в формате серийного номера даты Excel.
  • end_date — дата окончания в формате серийного номера даты Excel.
  • unit — используемая единица времени (годы, месяцы или дни).

Синтаксис

=DATEDIF(start_date, end_date, единица unit)

Примечания по использованию

Функция DATEDIF (Date + Dif) — это функция «совместимости», пришедшая из Lotus 1-2-3. Долгое время официальная документация по DATEDIF была скудной. Даже сейчас (май 2021 г.) Excel не поможет вам заполнить аргументы для DATEDIF, как другие функции.

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

Единицы времени

Функция РАЗНДАТ может вычислить время между начальной_датой и конечной_датой в годах, месяцах или днях. Единица времени указывается с помощью аргумента unit, который предоставляется в виде текста. В таблице ниже приведены доступные значения единиц и результат для каждой из них. Единицы времени могут быть указаны в верхнем или нижнем регистре (т.е. «ym» эквивалентно «YM»).

Единица Результат
«й» Разница в полных годах
«м» Разница в полных месяцах
«д» Разница в днях
«МД» Разница в днях, игнорируя месяцы и годы
«ммм» Разница в месяцах, без учета лет
«ярд» Разница в днях, игнорируя годы

Пример 1. Базовое использование

В приведенном выше примере столбец B содержит дату 1 января 2016 г., а столбец C — дату 1 марта 2018 г. В столбце E:

E5=DATEDIF(B5,C5,"y") // возвращает 2
E6=DATEDIF(B6,C6,"m") // возвращает 26
E7=DATEDIF(B7,C7,"d")// возвращает 790

Пример 2 – Разница в днях

Функция РАЗНДАТ может вычислить разницу между датами в днях тремя различными способами: (1) общее количество дней, (2) дни без учета годов и (3) дни без учета месяцев и лет. На снимке экрана ниже показаны все три метода с датой начала 15 июня 2015 г. и датой окончания 15 сентября 2021 г.:

Для этих расчетов используются следующие формулы:

=DATEDIF(B5,C5,"d") // общее количество дней
=DATEDIF(B6,C6,"yd") // дни, игнорирующие годы
=DATEDIF(B7,C7,"md") // дни, игнорирующие месяцы и годы

Обратите внимание: поскольку даты в Excel представляют собой просто большие серийные номера, первая формула не нуждается в DATEDIF и может быть записана как просто дата окончания минус дата начала:

=C5-B5 // конец-начало = общее количество дней

Пример 3 – Разница в месяцах

Функция РАЗНДАТ может вычислить разницу между датами в месяцах двумя разными способами: (1) общее количество полных месяцев, (2) полные месяцы без учета годов. На снимке экрана ниже показаны оба метода с датой начала 15 июня 2015 г. и датой окончания 15 сентября 2021 г.:

=DATEDIF(B5,C5,"m") // полные месяцы
=DATEDIF(B6,C6,"ym") // целые месяцы, игнорирующие годы

DATEDIF всегда округляет месяцы до последнего полного числа месяцев. Это означает, что РАЗНДАТ округляет результат в меньшую сторону, даже если он очень близок к следующему целому месяцу. Кроме того, DATEDIF может работать не так, как ожидалось, если даты начала и окончания являются датами «конца месяца».

Пример 4 – Разница в годах

Функция РАЗНДАТ может вычислить разницу между датами в полных  годах  всего одним методом, показанным ниже:

=DATEDIF(B5,C5,"y") // полные годы
=DATEDIF(B6,C6,"y") // полные годы
=YEARFRAC(B7,C7) // дробные годы с YEARFRAC

Обратите внимание, что в строке 6 разница составляет почти 6 лет, но не совсем. Поскольку РАЗНДАТ вычисляет только полные годы, результат по-прежнему равен 5. В строке 7 мы используем функцию YEARFRAC для расчета более точного результата.

Пример 5 – Возраст от дня рождения

Функцию РАЗНДАТ можно использовать вместе с функцией TODAY для расчета текущего возраста по дате рождения. Если полная дата рождения указана в A1, формула будет следующей:

=DATEDIF(A1,TODAY(),"y")

Примечания

  1. Excel не поможет вам заполнить функцию РАЗНДАТ, как другие функции.
  2. DATEDIF выдаст ошибку #NUM, если start_date больше, чем end_date. Если вы работаете с более сложной формулой, в которой даты начала и окончания могут быть неизвестны или выходить за пределы, вы можете перехватить ошибку с помощью функции IFERROR или использовать MIN и MAX для сортировки дат.
  3. Microsoft рекомендует не использовать значение «MD» для единицы измерения, поскольку оно «может привести к отрицательному числу, нулю или неточному результату».
Автор А. Днепров

Обучаю основам работы с офисными программами.

Функция DATEDIF в Excel
Глава 5. Работа со справочниками