Как рассчитать возраст в Excel: от простых формул до профессиональных приёмов

Расчёт возраста в Microsoft Excel или Google Таблицах — одна из самых востребованных задач при работе с персональными данными, кадровым учётом или аналитикой клиентов. Казалось бы, что может быть проще: взять текущую дату, вычесть дату рождения — и готово! Но на практике пользователи сталкиваются с массой нюансов: как учитывать високосные годы, почему формула выдаёт ошибку #ЧИСЛО!, как получить результат не в днях, а в полных годах с месяцами и днями.

Эта статья не просто даст вам готовые формулы — она объяснит логику расчётов, чтобы вы могли адаптировать решения под свои задачи. Мы разберём 5 способов: от элементарных (для новичков) до продвинутых (для работы с массивами данных). А ещё вы узнаете, как автоматизировать обновление возраста при открытии файла и избежать типичных ошибок, из-за которых формулы "ломаются".

Если вы работаете с базами данных сотрудников, медицинскими картами или клиентскими анкетами, умение правильно считать возраст сэкономит вам часы ручной работы. Например, в HR-отделах часто требуется сегментировать сотрудников по возрастным группам (18-25, 26-40 лет и т.д.) — и здесь без точных формул не обойтись.

Важно: все примеры в статье актуальны для Excel 2010–2026 и Google Таблиц, но мы отдельно укажем на различия между программами. Также вы найдёте уникальный приём для динамического обновления возраста без макросов — это редко освещается в стандартных руководствах.

1. Базовый метод: вычитание дат и деление на 365

Самый простой способ — вычесть дату рождения из текущей даты и разделить результат на 365. Формула выглядит так:

= (СЕГОДНЯ() - A2) / 365

где A2 — ячейка с датой рождения.

Плюсы: не требует знания специальных функций, работает во всех версиях Excel.

Минусы: результат получается в дробных годах (например, 28.34), а не в целых числах. Кроме того, метод не учитывает високосные годы, поэтому погрешность может достигать ±1 дня.

Чтобы округлить результат до целых лет, оберните формулу в функцию ОКРУГЛВНИЗ:

= ОКРУГЛВНИЗ((СЕГОДНЯ() - A2) / 365; 0)

⚠️ Внимание: Этот метод подходит только для приблизительных расчётов. Если точная дата критична (например, для медицинских или юридических документов), используйте способы из следующих разделов.

2. Функция РАЗНДАТ (DATEDIF): точный расчёт в годах, месяцах и днях

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

Синтаксис:

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

где единица_измерения может принимать значения:

  • 📅 "Y" — полные годы
  • 📆 "M" — полные месяцы
  • 📇 "D" — дни
  • 📊 "YM" — месяцы без учёта лет
  • 📈 "MD" — дни без учёта месяцев и лет
  • 📉 "YD" — дни без учёта годов (но с учётом месяцев)

Примеры использования:

ФормулаРезультат для даты рождения 15.05.1990 (на 10.10.2026)Пояснение
=РАЗНДАТ(A2;СЕГОДНЯ();"Y")34Полных лет
=РАЗНДАТ(A2;СЕГОДНЯ();"YM")5Месяцев сверх полных лет
=РАЗНДАТ(A2;СЕГОДНЯ();"MD")25Дней сверх полных месяцев
=РАЗНДАТ(A2;СЕГОДНЯ();"Y") & " лет, " & РАЗНДАТ(A2;СЕГОДНЯ();"YM") & " мес., " & РАЗНДАТ(A2;СЕГОДНЯ();"MD") & " дн."34 лет, 5 мес., 25 дн.Полный возраст в читаемом формате

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

📊 Какой формат возраста вам нужен чаще всего?
Только полные годы
Годы и месяцы
Годы, месяцы и дни
Дни от даты рождения

3. Функция ДАТАРАЗН: альтернатива для новых версий Excel

В Excel 2013 и новее появилась функция ДАТАРАЗН (DAYS в английской версии), которая упрощает расчёт разницы в днях, месяцах или годах. Её синтаксис:

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

где единица — это:

  • 📅 "Y" — годы
  • 📆 "M" — месяцы
  • 📇 "D" — дни

Пример:

= ДАТАРАЗН(A2; СЕГОДНЯ(); "Y") & " лет и " & ДАТАРАЗН(A2; СЕГОДНЯ(); "YM") & " месяцев"

⚠️ Внимание: В отличие от РАЗНДАТ, функция ДАТАРАЗН не поддерживает комбинации вроде "YM" или "MD". Зато она более устойчива к ошибкам при некорректных датах (например, если в ячейке текст вместо даты).

💡 Совет: Если вам нужно получить возраст в месяцах (например, для детей до года), используйте:

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

4. Динамический возраст: автоматическое обновление при открытии файла

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

  1. Перейдите в Файл → Параметры → Формулы.
  2. В разделе Параметры вычислений выберите Автоматически (или Автоматически, кроме таблиц данных).
  3. Поставьте галочку Пересчитывать книгу при открытии.

Если вы работаете в Google Таблицах, формулы с TODAY() обновляются автоматически каждые 30 минут или при любом изменении в таблице.

⚠️ Внимание: В больших файлах (свыше 10 000 строк) автоматический пересчёт может замедлять работу. В этом случае используйте ручное обновление через Формулы → Вычислить лист (F9).

☑️ Проверка корректности формул возраста

Выполнено: 0 / 4

5. Расчёт возраста на определённую дату (не текущую)

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

Примеры:

= РАЗНДАТ(A2; ДАТА(2023;12;31); "Y")  
= ДАТАРАЗН(A2; ДАТА(2026;6;1); "Y")   

🔹 Практический кейс: В медицинских картах часто указывают возраст пациента на момент осмотра. Формула:

= "На дату " & ТЕКСТ(ДАТА(2026;10;15); "DD.MM.YYYY") & " возраст: " & РАЗНДАТ(A2; ДАТА(2026;10;15); "Y") & " лет"

вернёт строку: На дату 15.10.2026 возраст: 34 лет.

⚠️ Внимание: Если дата в будущем (например, вы ошиблись и указали 2026 год вместо 2026), функция вернёт отрицательное значение или ошибку. Чтобы избежать этого, добавьте проверку:

= ЕСЛИ(ДАТА(2026;10;15) >= A2; РАЗНДАТ(A2; ДАТА(2026;10;15); "Y"); "Дата осмотра раньше даты рождения!")

6. Продвинутые приёмы: возраст в текстовом формате и условное оформление

Иногда возраст нужно представить не как число, а как текстовую строку (например, "34 года 5 месяцев"). Для этого комбинируйте функции РАЗНДАТ и ТЕКСТ:

Пример:

= РАЗНДАТ(A2; СЕГОДНЯ(); "Y") & " " & ВЫБОР(РАЗНДАТ(A2; СЕГОДНЯ(); "Y"); "год"; "года"; "лет") & ", " &

РАЗНДАТ(A2; СЕГОДНЯ(); "YM") & " " & ВЫБОР(РАЗНДАТ(A2; СЕГОДНЯ(); "YM"); "месяц"; "месяца"; "месяцев")

Результат: 34 года, 5 месяцев.

🎨 Условное оформление по возрасту:

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

Для автоматического склонения используйте функцию ВЫБОР с учётом остатка от деления:

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

ВЫБОР(

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

"лет"; "год"; "года"; "года"; "года"; "лет"; "лет"; "лет"; "лет"; "лет"

)

Аналогично для месяцев и дней.

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

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

🔴 Ошибка #ЧИСЛО!:

  • 📌 Причина: Дата рождения позже текущей даты (например, ввели 2050 год вместо 1950).
  • 🔧 Решение: Проверьте формат ячейки (должен быть Дата) и корректность введённых данных.

🔴 Некорректный результат (на 1 год меньше/больше):

  • 📌 Причина: Не учтён фактический день рождения. Например, если сегодня 10.10.2026, а день рождения 15.10.1990, то полных лет ещё 33, а не 34.
  • 🔧 Решение: Используйте РАЗНДАТ с параметром "Y" — она учитывает этот нюанс.

🔴 Формула не обновляется:

  • 📌 Причина: Отключён автоматический пересчёт (см. раздел 4).
  • 🔧 Решение: Нажмите F9 для принудительного пересчёта или настройте параметры, как описано выше.

🔴 Дата отображается как число (например, 45321):

  • 📌 Причина: Ячейка имеет общий формат, а не Дата.
  • 🔧 Решение: Выделите ячейку → Главная → Формат → Формат ячеек → Дата.

8. Автоматизация: расчёт возраста для тысяч строк

Если вам нужно посчитать возраст для большой базы данных (например, 10 000 сотрудников), ручной ввод формул займёт слишком много времени. Вот как оптимизировать процесс:

🔹 Способ 1: Прогрессия формул

  1. Введите формулу для первой строки (например, в B2).
  2. Наведите курсор на правый нижний угол ячейки (появится крестик).
  3. Дважды кликните — формула скопируется до последней заполненной строки в столбце A.

🔹 Способ 2: Таблицы Excel (Ctrl+T)

  1. Выделите диапазон с данными и нажмите Ctrl+T, чтобы преобразовать в таблицу.
  2. Введите формулу в первый столбец — она автоматически применится ко всем строкам.

🔹 Способ 3: Power Query (для продвинутых)

  1. Перейдите в Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец с формулой:
    = Date.From(DateTime.LocalNow()) - [Дата рождения]
  3. Преобразуйте результат в годы, месяцы или дни.

⚠️ Внимание: При работе с большими массивами данных (свыше 50 000 строк) отдавайте предпочтение Power Query или VBA — они обрабатывают данные быстрее, чем стандартные формулы.

📊 Бонус: Если вам нужно сегментировать данные по возрастным группам, используйте функцию ВПР или ИНДЕКС-ПОИСКПОЗ для присвоения категорий (например, "Молодёжь", "Средний возраст", "Пенсионеры").

FAQ: Частые вопросы по расчёту возраста в Excel

❓ Как посчитать возраст, если дата рождения в текстовом формате (например, "15 мая 1990")?

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

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

⚠️ Работает только если текст в формате, распознаваемом Excel (например, "15.05.1990" или "15 мая 1990"). Для нестандартных форматов (например, "май 15, 1990") потребуется VBA или ручная правка.

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

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

  • 📌 Вы используете Excel для Mac — в некоторых версиях функция называется DATEDIFF.
  • 📌 Ячейка с датой имеет неверный формат (проверьте через Формат ячеек).
  • 📌 В настройках региональных параметров Excel используется негрегорианский календарь (редко, но бывает).

🔧 Решение: Попробуйте ввести формулу вручную (без автозаполнения) или используйте альтернативу — ДАТАРАЗН.

❓ Можно ли посчитать возраст в Google Таблицах?

Да, все приведённые формулы работают и в Google Таблицах, за исключением:

  • 📌 Функция ДАТАРАЗН называется DATEDIFF.
  • 📌 Для текущей даты используйте TODAY() вместо СЕГОДНЯ().

Пример для Google Таблиц:

= DATEDIF(A2; TODAY(); "Y")
❓ Как посчитать возраст в годах и месяцах без дней (например, 34 года и 5 месяцев)?

Комбинируйте параметры "Y" и "YM" функции РАЗНДАТ:

= РАЗНДАТ(A2; СЕГОДНЯ(); "Y") & " лет и " & РАЗНДАТ(A2; СЕГОДНЯ(); "YM") & " месяцев"

Для склонения слов ("год"/"года"/"лет") добавьте функцию ВЫБОР, как показано в разделе 6.

❓ Как сделать так, чтобы возраст обновлялся в PDF после экспорта из Excel?

К сожалению, PDF — это статичный формат, и формулы в нём не работают. Решения:

  • 📌 Экспортируйте таблицу в PDF непосредственно перед отправкой, чтобы данные были актуальны.
  • 📌 Используйте VBA, чтобы создать PDF с текущей датой автоматически (требует навыков программирования).
  • 📌 Вставляйте возраст как текст (без формул) перед экспортом.