Как в Excel вычесть даты и получить возраст: 5 способов с примерами

Почему вычитание дат в Excel — это не так просто, как кажется

На первый взгляд, задача посчитать возраст по дате рождения в Microsoft Excel или Google Таблицах кажется тривиальной: взял две даты, вычел одну из другой — получил результат. Но на практике пользователи сталкиваются с массой нюансов: от некорректного отображения результата в формате даты вместо лет до ошибок при работе с отрицательными значениями. Например, если просто вычесть 15.05.2000 из 10.03.2026, Excel вернёт число 8477 — количество дней между датами, а не возраст в годах.

Проблема усложняется, когда нужно учитывать точные интервалы: полных лет, месяцев и дней (например, "25 лет, 3 месяца и 10 дней"). Стандартные функции вычитания не справляются с такой задачей без дополнительных формул. Кроме того, многие пользователи не знают о специализированной функции РАЗНДАТ (или DATEDIF в английской версии), которая скрыта в интерфейсе Excel, но решает 90% проблем с расчётом возраста. В этой статье мы разберём все рабочие методы — от базовых до продвинутых, — а также покажем, как избежать типичных ошибок при работе с датами.

Способ 1: Простое вычитание дат (для получения дней)

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

Формула выглядит так:

=B2-A2

Где A2 — ячейка с датой рождения, а B2 — с текущей датой. Важно: обе ячейки должны быть отформатированы как дата (выделите их и выберите формат "Дата" в меню Главная → Формат ячеек).

  • Плюсы: проще некуда, работает во всех версиях Excel.
  • Минусы: результат в днях, а не в годах; не учитывает месяцы и годы.

Способ 2: Функция РАЗНДАТ (DATEDIF) — универсальное решение

Функция РАЗНДАТ (или DATEDIF в английской версии Excel) специально создана для расчёта разницы между датами в годах, месяцах или днях. Она не отображается в списке функций Excel, но работает во всех версиях программы, включая Excel 365 и Excel 2019.

Синтаксис функции:

=РАЗНДАТ(дата_начала; дата_конца; единица_измерения)

Где единица_измерения может принимать следующие значения:

Код Значение Пример результата
"Y" Полных лет Для дат 15.05.2000 и 10.03.2026 вернёт 23 (не 24, так как день рождения ещё не наступил).
"M" Полных месяцев (без учёта лет и дней) Для тех же дат вернёт 280.
"D" Дней (без учёта месяцев и лет) Вернёт 8477.
"YM" Месяцев без учёта полных лет Для 15.05.2000 и 10.03.2026 вернёт 9 (месяцев с последнего дня рождения).
"MD" Дней без учёта полных месяцев и лет Вернёт 24 (дней с 15 февраля 2026).

Пример формулы для расчёта полных лет:

=РАЗНДАТ(A2; B2; "Y")
📊 Какой формат возраста вам нужнее всего?
Только годы
Годы и месяцы
Годы, месяцы и дни
Дни между датами

Способ 3: Комбинация функций для точного возраста (годы, месяцы, дни)

Если нужно получить возраст в формате "23 года, 9 месяцев и 24 дня", одной функции РАЗНДАТ будет недостаточно. Здесь потребуется комбинация из трёх формул:

  1. Годы: =РАЗНДАТ(A2; B2; "Y")
  2. Месяцы: =РАЗНДАТ(A2; B2; "YM")
  3. Дни: =РАЗНДАТ(A2; B2; "MD")

Чтобы объединить их в одну ячейку с текстом, используйте функцию ТЕКСТ или оператор конкатенации &:

=РАЗНДАТ(A2; B2; "Y") & " г., " & РАЗНДАТ(A2; B2; "YM") & " мес., " & РАЗНДАТ(A2; B2; "MD") & " дн."

Убедитесь, что ячейки с датами отформатированы как "Дата"|Проверьте, что дата конца новее даты начала|Используйте английские кавычки для аргументов ("Y", а не «Y»)-->

Способ 4: Автоматический расчёт возраста с сегодняшней датой

Часто требуется посчитать возраст на текущую дату, без ручного ввода сегодняшнего дня. Для этого вместо второй даты используйте функцию СЕГОДНЯ():

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

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

Что делать, если функция СЕГОДНЯ() не обновляется?

Если дата "застыла" и не меняется при открытии файла, проверьте:

1. Включён ли в Excel режим автоматического пересчёта (Формулы → Параметры вычислений → Автоматически).

2. Не открыт ли файл в режиме "Только для чтения".

3. Не сохранён ли файл в формате .xls (старая версия Excel), где некоторые функции работают некорректно.

Важно: функция СЕГОДНЯ() может давать сбой в Google Таблицах при открытии файла на мобильных устройствах. В этом случае используйте альтернативу: =ТДАТА().

Способ 5: Расчёт возраста с учётом будущих дат (для планирования)

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

=РАЗНДАТ(A2; "01.01.2026"; "Y")

Если будущая дата указана в отдельной ячейке (например, C2), формула примет вид:

=РАЗНДАТ(A2; C2; "Y")

Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при работе с датами. Вот самые распространённые из них и способы их решения:

⚠️ Внимание: Если в ячейке с датой отображается набор символов (например, 45342), это значит, что формат ячейки установлен как "Общий". Исправьте его на "Дата" в меню Главная → Формат → Формат ячеек.
  • 🔴 Ошибка #ИМЯ?: Возникает, если в функции РАЗНДАТ использованы русские кавычки («») вместо английских (""). Замените их.
  • 🔴 Ошибка #ЧИСЛО!: Появляется, если дата конца раньше даты начала. Проверьте порядок аргументов.
  • 🔴 Некорректный результат в годах: Функция РАЗНДАТ считает полные годы. Если день рождения ещё не наступил, она вернёт меньшее значение. Например, для дат 31.12.2000 и 01.01.2026 результат будет 22, а не 23.

Ещё одна частая проблема — отрицательные значения при вычитании дат. Excel не умеет автоматически конвертировать их в положительные, поэтому если вам нужно посчитать, сколько дней осталось до события, используйте функцию АБС:

=АБС(B2-A2)

Продвинутые приёмы: условное форматирование для возрастных групп

Расчёт возраста — только половина задачи. Часто требуется визуализировать данные, например, выделить цветом ячейки с возрастом старше 18 лет или младше 3 лет. Для этого используйте условное форматирование:

  1. Выделите ячейки с возрастом (например, столбец C).
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите тип правила "Форматировать только ячейки, которые содержат".
  4. В поле "Форматировать только ячейки с" укажите условие, например: =C1>=18.
  5. Задайте цвет заливки (например, зелёный для совершеннолетних).

Для более сложных условий (например, выделение возраста от 3 до 6 лет) используйте формулы в условном форматировании:

=И(C1>=3; C1<=6)

FAQ: Ответы на частые вопросы

Можно ли в Excel посчитать возраст в месяцах с учётом дней?

Да, для этого используйте комбинацию функций РАЗНДАТ с аргументом "M" (полные месяцы) и "MD" (дополнительные дни). Например:

=РАЗНДАТ(A2; B2; "M") & " мес. и " & РАЗНДАТ(A2; B2; "MD") & " дн."

Это вернёт результат в формате "280 мес. и 24 дн.".

Почему функция РАЗНДАТ не работает в моём Excel?

Причины могут быть следующими:

  • Вы используете русские кавычки («») вместо английских ("").
  • Ячейки с датами не отформатированы как "Дата".
  • Версия Excel старше 2000 года (в них функция может отсутствовать).
  • Файл сохранён в формате .csv или .txt — сохраните его как .xlsx.

Проверьте также регистр: функция должна называться именно РАЗНДАТ (заглавные буквы).

Как посчитать средний возраст группы людей в Excel?

Сначала рассчитайте возраст каждого человека с помощью РАЗНДАТ, затем используйте функцию СРЗНАЧ:

=СРЗНАЧ(C2:C100)

Где C2:C100 — диапазон с возрастом в годах. Убедитесь, что в столбце нет пустых ячеек или ошибок, иначе результат будет некорректным.

Можно ли автоматически обновлять возраст в Google Таблицах?

Да, в Google Таблицах также работает функция =DATEDIF (аналог РАЗНДАТ), а для текущей даты используйте =TODAY(). Формулы обновляются автоматически при каждом открытии файла или изменении данных.

Пример:

=DATEDIF(A2; TODAY(); "Y")
Как посчитать возраст в Excel на определённую дату в прошлом?

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

=РАЗНДАТ(A2; "01.01.2020"; "Y")

Если дата указана в другой ячейке (например, D2), формула примет вид:

=РАЗНДАТ(A2; D2; "Y")