Если при вычитании двух дат в 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
Чтобы корректно применить функцию, следуйте алгоритму:
- Подготовьте данные: Убедитесь, что обе даты введены в формате
ДД.ММ.ГГГГ(или другом локальном формате). Если дата отображается как число (например,44197), измените формат ячейки наДатачерез контекстное меню (ПКМ → Формат ячеек). - Введите функцию: В пустой ячейке наберите
=РАЗНДАТ(— Excel подскажет синтаксис. Аргументы указывайте в порядке:=РАЗНДАТ(начальная_дата; конечная_дата; единица_измерения) - Укажите единицы измерения: В третьем аргументе используйте один из кодов (
"d","m","y"и т.д.), как в списке выше. - Завершите ввод: Закройте скобку и нажмите
Enter. Если результат отображается как дата (01.01.1900), измените формат ячейки наОбщий.
Пример для расчёта возраста:
| Ячейка | Значение | Формула | Результат |
|---|---|---|---|
| A2 | 15.05.1990 | — | Дата рождения |
| B2 | 10.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 обновите страницу браузера.
Расширенные примеры: сложные расчёты с датами
Для нестандартных задач комбинируйте РАЗНДАТ с другими функциями:
- Разница между датами без учёта выходных:
=РАЗНДАТ(A2;B2;"d")-2*ЦЕЛОЕ(РАЗНДАТ(A2;B2;"d")/7)-ЕСЛИ(ИЛИ(ДЕНЬНЕД(B2;2)=6;ДЕНЬНЕД(B2;2)=7);1;0)+ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)=6;ДЕНЬНЕД(A2;2)=7);1;0)Эта формула вычитает все субботы и воскресенья из разницы в днях.
- Количество полных рабочих лет (с учётом даты приёма на работу):
=ЕСЛИ(ИЛИ(МЕСЯЦ(СЕГОДНЯ())>МЕСЯЦ(A2);И(МЕСЯЦ(СЕГОДНЯ())=МЕСЯЦ(A2);ДЕНЬ(СЕГОДНЯ())>=ДЕНЬ(A2)));ГОД(СЕГОДНЯ())-ГОД(A2);ГОД(СЕГОДНЯ())-ГОД(A2)-1) - Разница в кварталах:
=ЦЕЛОЕ(РАЗНДАТ(A2;B2;"m")/3)
Критичный нюанс: При расчёте рабочих дней учитывайте региональные праздники. В Excel нет встроенной функции для этого — используйте ЧИСТРАБДНИ (англ. NETWORKDAYS) с перечнем праздников в отдельном диапазоне.
Отображение результата: форматирование ячеек
Если после вычитания дат (=B2-A2) результат отображается как дата (01.01.1900), проблема в формате ячейки. Исправьте это так:
- Выделите ячейку с результатом.
- Нажмите
Ctrl+1(илиПКМ → Формат ячеек). - Вкладка
Число → ЧисловойилиОбщий.
Для наглядности используйте условное форматирование:
- 🔴 Просроченные задачи: Выделите ячейки с разницей дней и установите правило:
Значение меньше 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").