Как правильно установить РАЗНДАТ в Excel: формулы и примеры расчета разницы дат

Если при вычитании двух дат в Microsoft Excel вы получаете некорректный результат (например, вместо количества дней отображается дата в формате 01.01.1900), проблема кроется в неправильном формате ячеек или отсутствии функции РАЗНДАТ. Эта функция специально предназначена для вычисления разницы между датами в днях, месяцах или годах, но часто пользователи сталкиваются с ошибкой #ИМЯ? из-за опечатки в названии или неверного синтаксиса.

В отличие от простого вычитания (=B2-A2), РАЗНДАТ позволяет гибко управлять единицами измерения — например, посчитать полные годы между датами рождения и текущей датой, игнорируя месяцы и дни. Однако в новых версиях Excel 365 и Excel 2021 функция скрыта в списке мастер-функций, что вызывает путаницу. Ниже разберём, как её активировать, какие аргументы использовать и чем заменить, если РАЗНДАТ не работает.

Что такое функция РАЗНДАТ и зачем она нужна

Функция РАЗНДАТ (англ. DATEDIF) — это встроенный инструмент Excel, который вычисляет разницу между двумя датами в заданных единицах: днях ("d"), месяцах ("m") или годах ("y"). Её ключевое преимущество перед простым вычитанием — возможность игнорировать части даты. Например, если нужно узнать, сколько полных лет прошло с 15.03.2010 по 10.02.2023, простая разность даст 12 лет и 11 месяцев, а РАЗНДАТ с аргументом "y" вернёт 12 (полных лет).

Функция поддерживает 6 форматов вывода:

  • 📅 "d" — разница в днях (включая неполные месяцы/годы).
  • 📆 "m" — разница в полных месяцах.
  • 🗓️ "y" — разница в полных годах.
  • 🔄 "ym" — разница в месяцах без учёта лет (например, между 01.01.2020 и 15.03.2020 вернёт 2).
  • 🔙 "yd" — разница в днях без учёта лет (например, между 01.01.2020 и 15.02.2020 вернёт 45).
  • 📊 "md" — разница в днях без учёта месяцев и лет (например, между 01.03.2020 и 15.03.2020 вернёт 14).

Важно: РАЗНДАТ не отображается в списке функций при ручном вводе через Формулы → Дата и время, но работает при прямом вводе в ячейку. Это не ошибка, а особенность Excel — функция сохранена для совместимости с Lotus 1-2-3.

⚠️ Внимание: Если после ввода =РАЗНДАТ(A2;B2;"d") появляется ошибка #ИМЯ?, проверьте разделитель аргументов. В русскоязычной версии Excel используется точка с запятой (;), в английской — запятая (,).

Пошаговая инструкция: как вставить РАЗНДАТ в Excel

Чтобы корректно применить функцию, следуйте алгоритму:

  1. Подготовьте данные: Убедитесь, что обе даты введены в формате ДД.ММ.ГГГГ (или другом локальном формате). Если дата отображается как число (например, 44197), измените формат ячейки на Дата через контекстное меню (ПКМ → Формат ячеек).
  2. Введите функцию: В пустой ячейке наберите =РАЗНДАТ(Excel подскажет синтаксис. Аргументы указывайте в порядке:
    =РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения)
  3. Укажите единицы измерения: В третьем аргументе используйте один из кодов ("d", "m", "y" и т.д.), как в списке выше.
  4. Завершите ввод: Закройте скобку и нажмите Enter. Если результат отображается как дата (01.01.1900), измените формат ячейки на Общий.

Пример для расчёта возраста:

ЯчейкаЗначениеФормулаРезультат
A215.05.1990Дата рождения
B210.11.2023Текущая дата
C2=РАЗНДАТ(A2;B2;"y")33 (полных года)
D2=РАЗНДАТ(A2;B2;"ym")6 (месяцев сверх полных лет)

Ячейки с датами отформатированы как "Дата"|Разделитель аргументов соответствует локали (; или ,)|Конечная дата позже начальной|Единица измерения указана в кавычках ("d", "m" и т.д.)

-->

Типичные ошибки и как их исправить

Даже при правильном синтаксисе РАЗНДАТ может возвращать неверные значения. Рассмотрим распространённые проблемы:

  • 🚫 Ошибка #ЧИСЛО!: Возникает, если начальная дата позже конечной. Поменяйте их местами или используйте ABS для абсолютного значения: =ABS(РАЗНДАТ(B2;A2;"d")).
  • 📅 Некорректный формат даты: Если дата введена как текст (например, "15-05-2020"), Excel не распознаёт её. Преобразуйте текст в дату с помощью ДАТАЗНАЧ:
    =РАЗНДАТ(ДАТАЗНАЧ("15.05.2020");СЕГОДНЯ();"d")
  • Функция не находится: РАЗНДАТ отсутствует в списке мастер-функций, но работает при ручном вводе. Не пытайтесь найти её через Формулы → Вставить функцию.
⚠️ Внимание: В Excel Online и мобильной версии функция РАЗНДАТ может не поддерживаться. Используйте альтернативы: =ГОД(B2)-ГОД(A2) для лет или =B2-A2 для дней (с последующим форматированием ячейки).

Дни|Месяцы|Годы|Годы и месяцы одновременно

-->

Альтернативы РАЗНДАТ: когда функция не работает

Если РАЗНДАТ недоступна (например, в Google Sheets или старых версиях Excel), используйте комбинации других функций:

ЦельФормулаПример
Разница в днях=B2-A2=ДАТА(2023;11;10)-ДАТА(2023;10;1) → 40
Разница в месяцах=МЕСЯЦ(B2)-МЕСЯЦ(A2)+12*(ГОД(B2)-ГОД(A2))Между 01.01.2020 и 15.03.2021 → 14
Разница в годах=ЦЕЛОЕ((B2-A2)/365) или =ГОД(B2)-ГОД(A2)Между 15.05.1990 и 10.11.2023 → 33
Точный возраст (годы + месяцы)=ЦЕЛОЕ((B2-A2)/365) & " лет, " & ОСТАТ(MЕСЯЦ(B2)-МЕСЯЦ(A2)+12*(ГОД(B2)-ГОД(A2));12) & " мес."33 лет, 5 мес.

Для Google Sheets замените СЕГОДНЯ() на TODAY(), а ; на ,. В мобильном Excel (Android/iOS) РАЗНДАТ может требовать ручного ввода — используйте альтернативы из таблицы.

Как посчитать разницу между датой и сегодняшним днём

Для динамического расчёта разницы между фиксированной датой и текущей используйте комбинацию РАЗНДАТ с функцией СЕГОДНЯ():

=РАЗНДАТ(A2;СЕГОДНЯ();"d")  

=РАЗНДАТ(A2;СЕГОДНЯ();"y")

Примеры применения:

  • 📦 Срок годности: Если в A2 дата производства, а в B2 — срок годности в днях, формула =РАЗНДАТ(A2;СЕГОДНЯ();"d")>B2 вернёт ИСТИНА, если продукт просрочен.
  • 🎂 Дни до дня рождения: =РАЗНДАТ(СЕГОДНЯ();ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(A2);ДЕНЬ(A2));"d") — посчитает дни до ближайшего дня рождения из ячейки A2.
  • Обработка заказов: =ЕСЛИ(РАЗНДАТ(B2;СЕГОДНЯ();"d")>14;"Просрочено";"В сроке"), где B2 — дата заказа.
⚠️ Внимание: Функция СЕГОДНЯ() пересчитывается при каждом открытии файла. Чтобы зафиксировать текущую дату, замените её на Ctrl+; (вставится статическое значение).
Как обновить все формулы с СЕГОДНЯ() принудительно

Нажмите Ctrl+Alt+F9 (полный пересчёт) или F9 (пересчёт текущего листа). В Excel Online обновите страницу браузера.

Расширенные примеры: сложные расчёты с датами

Для нестандартных задач комбинируйте РАЗНДАТ с другими функциями:

  1. Разница между датами без учёта выходных:
    =РАЗНДАТ(A2;B2;"d")-2*ЦЕЛОЕ(РАЗНДАТ(A2;B2;"d")/7)-ЕСЛИ(ИЛИ(ДЕНЬНЕД(B2;2)=6;ДЕНЬНЕД(B2;2)=7);1;0)+ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)=6;ДЕНЬНЕД(A2;2)=7);1;0)

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

  2. Количество полных рабочих лет (с учётом даты приёма на работу):
    =ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ(A2);И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(A2);ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(A2)));ГОД(СЕГОДНЯ())-ГОД(A2);ГОД(СЕГОДНЯ())-ГОД(A2)-1)
  3. Разница в кварталах:
    =ЦЕЛОЕ(РАЗНДАТ(A2;B2;"m")/3)

Критичный нюанс: При расчёте рабочих дней учитывайте региональные праздники. В Excel нет встроенной функции для этого — используйте ЧИСТРАБДНИ (англ. NETWORKDAYS) с перечнем праздников в отдельном диапазоне.

Отображение результата: форматирование ячеек

Если после вычитания дат (=B2-A2) результат отображается как дата (01.01.1900), проблема в формате ячейки. Исправьте это так:

  1. Выделите ячейку с результатом.
  2. Нажмите Ctrl+1 (или ПКМ → Формат ячеек).
  3. Вкладка Число → Числовой или Общий.

Для наглядности используйте условное форматирование:

  • 🔴 Просроченные задачи: Выделите ячейки с разницей дней и установите правило: Значение меньше 0 → красный фон.
  • 🟢 Сроки в норме: Значение больше 7 → зелёный фон.
  • 🟡 Скоро истекает: Значение между 0 и 7 → жёлтый фон.

FAQ: Частые вопросы по РАЗНДАТ в Excel

Почему РАЗНДАТ возвращает отрицательное число?

Это означает, что начальная дата позже конечной. Например, =РАЗНДАТ("10.11.2023";"01.01.2020";"d") вернёт отрицательное значение. Используйте ABS для абсолютного значения или поменяйте даты местами.

Можно ли в РАЗНДАТ использовать время (часы, минуты)?

Нет, РАЗНДАТ работает только с датами. Для разницы во времени используйте простое вычитание (=B2-A2) и установите формат ячейки Время или [ч]:мм:сс для отображения часов.

Как посчитать возраст с учётом месяца и дня?

Используйте комбинацию:

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

Например, для даты рождения 15.05.1990 результат будет: 33 лет, 5 мес., 26 дн. (на 10.11.2023).

Почему в Excel Online нет функции РАЗНДАТ?

В веб-версии Excel функция может быть отключена. Альтернатива:

=ДЕНЬ360(A2;B2)  

=ГОД(B2)-ГОД(A2)-(МЕСЯЦ(B2)&ДЕНЬ(B2)<МЕСЯЦ(A2)&ДЕНЬ(A2))

Как посчитать разницу между датами в разных листах?

Указывайте адрес листа перед ячейкой. Например:

=РАЗНДАТ(Лист1!A2;Лист2!B5;"d")

Если имя листа содержит пробелы, используйте апострофы: =РАЗНДАТ('Мой лист'!A2;B2;"m").