Функции и формулы

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

Функция РАЗНДАТ — это расчёт полных лет, месяцев или дней между двумя датами для тех, кто считает возраст, стаж и сроки договоров. По справке Microsoft РАЗНДАТ возвращает #ЧИСЛО!, если начальная дата больше конечной[1]. Ниже — шесть единиц на датах из справки, возраст на сегодня, стаж «лет, месяцев, дней» и разбор ошибок.

Тренажёр: 7 шагов

Отдел кадров считает стаж, бухгалтерия — срок договора, учитель — возраст учеников, и у всех одна проблема: простое вычитание дат даёт дни, а нужны годы и месяцы. Справка Microsoft объясняет, почему даты вообще можно сравнивать: в системе 1900 дата хранится числом — количеством дней с 1 января 1900 года, и 5 июля 2011 года равно 40729[2]. На этом числе и строится РАЗНДАТ: функция сравнивает два порядковых номера и переводит разницу в нужные единицы.

Путь к ответу короткий: найти даты начала и конца, ввести формулу РАЗНДАТ с нужной единицей, проверить результат на паре дат с известным ответом, исправить ошибку #ЧИСЛО! или формат и протянуть формулу на свои данные. Подвох в единицах: «y» и «m» считают только полные периоды, а «md» справка не советует вовсе.

Ключевые факты: функция РАЗНДАТ

  • РАЗНДАТ считает количество полных лет, месяцев или дней между двумя датами по единице в кавычках.
  • У функции 6 единиц: y, m, d, md, ym и yd[1].
  • РАЗНДАТ возвращает #ЧИСЛО!, если начальная дата больше конечной[1].
  • РАЗНДАТ отличается от вычитания дат тем, что считает полные месяцы и годы, а не только дни.
  • Справка Microsoft не рекомендует единицу «md»: результат может быть отрицательным, нулевым или неверным[1].

Что такое функция РАЗНДАТ и шесть её единиц

Функция РАЗНДАТ считает полные годы, месяцы или дни между двумя датами по единице в третьем аргументе. Синтаксис по справке Microsoft — РАЗНДАТ(нач_дата;кон_дата;единица), а единица пишется в кавычках[1]. В английской версии функция называется DATEDIF.

Пример считается на датах из справки: в A2 — 01.06.2001, в B2 — 15.08.2002. Таблица ниже показывает единицу, что она считает, и результат для дат 01.06.2001 и 15.08.2002.

AB
1НачалоКонец
201.06.200115.08.2002
ЕдиницаЧто считаетФормулаРезультат
"y"полные годы=РАЗНДАТ(A2;B2;"y")1
"m"полные месяцы=РАЗНДАТ(A2;B2;"m")14
"d"дни=РАЗНДАТ(A2;B2;"d")440
"ym"месяцы без учёта лет и дней=РАЗНДАТ(A2;B2;"ym")2
"yd"дни без учёта лет=РАЗНДАТ(A2;B2;"yd")75
"md"дни без учёта месяцев и лет=РАЗНДАТ(A2;B2;"md")14

Справка приводит для этой пары 440 дней и 75 дней без учёта лет, остальные строки пересчитаны в движке тренажёра[4]. Функция РАЗНДАТ с единицей «m» вернула 14, хотя последний месяц почти закончился: неполный месяц в счёт не идёт. Функция РАЗНДАТ в Excel работает с любым значением, которое программа понимает как дату: ссылкой на ячейку, результатом ДАТА или СЕГОДНЯ. Допустимые даты лежат между 1 января 1900 года и 31 декабря 9999 года[3].

Миф: РАЗНДАТ с единицей «y» округляет возраст до ближайшего года — на деле «y» считает количество полных лет, так написано в справке Microsoft[1].

Справка относит функцию к Excel для Microsoft 365, Excel 2024, Excel 2021, Excel 2019 и Excel 2016, в том числе для Mac. При этом РАЗНДАТ предлагается для поддержки старых книг Lotus 1-2-3 и в некоторых случаях может давать неверные результаты[1].

Разобравшись с единицами, переходим к двум задачам, ради которых функцию ищут чаще всего, — возрасту и стажу.

Как посчитать возраст и стаж функцией РАЗНДАТ

РАЗНДАТ с СЕГОДНЯ и единицей y возвращает возраст в полных годах на текущую дату. Дата рождения стоит в A3, а формула пересчитывается каждый раз, когда открывается книга.

  1. Введите дату рождения в A3, например 14.05.1990.
  2. Введите в B3 =РАЗНДАТ(A3;СЕГОДНЯ();"y") и нажмите Enter.
  3. Проверьте результат: на 06.11.2026 формула вернёт 36[4].
  4. Протяните формулу маркером заполнения вниз на весь список сотрудников.
  5. Если возраст нужен на дату отчёта, поставьте её в D1 и замените СЕГОДНЯ() на $D$1.

Стаж в годах, месяцах и днях собирают из трёх вызовов РАЗНДАТ с единицами y, ym и md:

=РАЗНДАТ(A3;СЕГОДНЯ();"y")&" г. "&РАЗНДАТ(A3;СЕГОДНЯ();"ym")&" мес. "&РАЗНДАТ(A3;СЕГОДНЯ();"md")&" дн."

Для той же даты на 06.11.2026 получится «36 г. 5 мес. 23 дн.»[4]. Если стаж считают на конкретную дату, а не на сегодня, вместо СЕГОДНЯ ставят ссылку на ячейку с датой увольнения или отчёта. Третья часть формулы использует «md», поэтому результат стоит проверить на двух-трёх строках вручную.

Возраст в полных годах считает и связка =ЦЕЛОЕ(ДОЛЯГОДА(A3;СЕГОДНЯ())) — на этих данных она тоже даёт 36. Справка Microsoft о вычислении возраста приводит ещё формулу с делением разности дат на 365,25 для поправки на високосные годы[7].

В Google Таблицах есть DATEDIF с теми же единицами. Месяц там засчитывается, только когда наступает то же число месяца: от 30.09.2015 до 28.02.2016 функция вернёт 4 месяца[5].

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

Чем РАЗНДАТ отличается от вычитания дат и ДОЛЯГОДА

РАЗНДАТ отличается от вычитания дат тем, что считает полные месяцы и годы, а вычитание даёт только дни. Справочник функций дат Microsoft описывает ещё ДНИ для числа дней и ДОЛЯГОДА для доли года между датами[6].

ЗадачаЧем считатьПримерРезультат на датах из A2 и B2
дни между датамивычитание=B2-A2440
дни между датамиДНИ=ДНИ(B2;A2)440
полные месяцыРАЗНДАТ=РАЗНДАТ(A2;B2;"m")14
доля годаДОЛЯГОДА=ДОЛЯГОДА(A2;B2)дробное число
возраст в годахРАЗНДАТ=РАЗНДАТ(A3;СЕГОДНЯ();"y")36

Порядок аргументов у функций разный. ДНИ принимает сначала конечную дату, потом начальную, а РАЗНДАТ — наоборот. Справочник отмечает ДНИ значком Excel 2013, то есть в современных версиях она есть[6].

Вычитание проще и надёжнее для дней: оно не зависит от единиц и не даёт ошибку при перепутанных датах, а возвращает отрицательное число. Единицы «m» и «y» нужны там, где ответ — в полных месяцах или годах: стаж, возраст, срок аренды.

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

Если ячейка с результатом показывает дату вместо числа, ей достался формат даты: справка Google про DATEDIF советует сменить формат на числовой[5]. В Excel формат меняется в окне «Формат ячеек».

Именно поэтому ошибки РАЗНДАТ требуют отдельного разбора: функция строже вычитания и молча не исправляет неверные данные.

Ошибки РАЗНДАТ: #ЧИСЛО!, #ИМЯ? и единица MD

РАЗНДАТ возвращает #ЧИСЛО!, если начальная дата больше конечной, и не прощает пропущенных кавычек в единице. Таблица собирает частые сбои на наших данных[4].

Что видноПричинаЧто сделать
#ЧИСЛО!начальная дата позже конечнойпоменять аргументы местами
#ИМЯ?единица без кавычек: =РАЗНДАТ(A2;B2;y)взять единицу в кавычки
#ЗНАЧ!дата записана текстом, который Excel не понялперевести её ДАТАЗНАЧ или ввести заново
странный остаток днейединица «md»посчитать остаток вычитанием через ДАТА
дата вместо числау ячейки формат датыпоставить общий или числовой формат

Перепутанные даты не дают отрицательного числа, как при вычитании. Чаще всего так бывает, когда столбцы «Начало» и «Конец» в выгрузке стоят в обратном порядке, — проверьте пару строк, прежде чем протягивать формулу. Для сроков, которые ещё не наступили, формулу оборачивают в проверку: =ЕСЛИ(B2>=A2;РАЗНДАТ(A2;B2;"d");0).

Миф: РАЗНДАТ с перепутанными датами вернёт отрицательное число — на деле при начальной дате больше конечной функция возвращает #ЧИСЛО!, по справке Microsoft[1].

Единицу «md» справка не рекомендует: результат может быть отрицательным, нулевым или неверным, а обходной путь строят через функцию ДАТА[1]. ДАТАЗНАЧ из справочника функций дат преобразует дату из текста в число, и после этого функция её принимает[6]. Проверить, что в ячейке настоящая дата, просто: смените формат на общий — дата превратится в порядковый номер, а текст останется текстом.

Миф: единица «md» всегда даёт точный остаток дней — на деле справка Microsoft прямо не рекомендует этот аргумент из-за отрицательных и неверных результатов[1].

Остаётся понять, в каких задачах РАЗНДАТ лучше заменить другой функцией.

Когда РАЗНДАТ не подойдёт

РАЗНДАТ не подойдёт, если нужны рабочие дни, дробная часть года или даты раньше 1900 года. Функция считает только целые календарные периоды, и каждое условие ниже проверяется до того, как писать формулу. В остальных случаях она остаётся самым коротким способом получить годы и месяцы между датами.

  • Если нужны рабочие дни, РАЗНДАТ не подойдёт: функция не отличает выходные от будней — для графиков есть страница о подсчёте будней между датами.
  • Если нужна доля года, например половина года для расчёта процентов, функция вернёт только целое число — берите ДОЛЯГОДА.
  • При датах раньше 1 января 1900 года функции дат не работают: такие значения выходят за пределы, допустимые в расчётах[3].
  • Если остаток дней считается единицей «md», результат может оказаться неверным — проверьте его вычитанием.
  • Когда отчёт откроют в старой программе без этой функции, расчёт лучше заменить вычитанием дат и делением: вычитание понимает любая версия.

Для сроков «через три месяца» и «конец квартала» удобнее функции, которые прибавляют месяцы к дате, — они разобраны на странице о датах через N месяцев и конце месяца. Сегодняшняя дата для возраста берётся функцией СЕГОДНЯ, о её пересчёте — на странице о функции СЕГОДНЯ и обновлении даты. Остальные группы формул собраны в общем справочнике формул Excel по задачам. Посчитайте стаж в тренажёре: урок меняет даты и проверяет, что функция получает их в правильном порядке.

Частые вопросы

Как работает формула РАЗНДАТ?

Функция РАЗНДАТ принимает начальную дату, конечную дату и единицу в кавычках: «y» — годы, «m» — месяцы, «d» — дни[1]. Формула =РАЗНДАТ(A2;B2;"m") для 01.06.2001 и 15.08.2002 вернёт 14 полных месяцев.

Как посчитать возраст по дате рождения?

Возраст по дате рождения считает формула =РАЗНДАТ(A3;СЕГОДНЯ();"y"), где в A3 — дата рождения. Для 14.05.1990 на 06.11.2026 она вернёт 36 полных лет[4].

Почему РАЗНДАТ выдаёт #ЧИСЛО!?

РАЗНДАТ выдаёт #ЧИСЛО!, если начальная дата позже конечной: функция не возвращает отрицательных чисел[1]. Если не поменять даты местами, ошибка уйдёт во все зависимые ячейки. Поменяйте аргументы местами или оберните формулу в ЕСЛИ с проверкой порядка дат.

Чем РАЗНДАТ отличается от вычитания дат?

РАЗНДАТ отличается от вычитания тем, что умеет считать полные месяцы и годы. Вычитание =B2-A2 даёт только дни, зато при перепутанных датах возвращает отрицательное число, а не ошибку.

Есть ли РАЗНДАТ в Google Таблицах?

Да, в Google Таблицах есть DATEDIF с теми же единицами Y, M, D, MD, YM и YD. Месяц там засчитывается, только когда наступает то же число месяца[5].

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

Стаж собирают из трёх формул с единицами «y», «ym» и «md», склеенных знаком &. Для 14.05.1990 на 06.11.2026 получится «36 г. 5 мес. 23 дн.»[4].

Источники

  1. [1] Microsoft, справка «Функция РАЗНДАТ», 2026
  2. [2] Microsoft, справка «Системы дат в Excel», 2026
  3. [3] Microsoft, «Технические характеристики и ограничения Microsoft Excel», 2026
  4. [4] Редакция «Excel-тренажёра», проверка «РАЗНДАТ на датах из справки, возраст и стаж на 06.11.2026» в движке тренажёра, 2026
  5. [5] Google, справка «DATEDIF», 2026
  6. [6] Microsoft, справка «Функции даты и времени (справка)», 2026
  7. [7] Microsoft, справка «Вычисление возраста», 2026

Похожие темы