Расчёт возраста в 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 не пересчитывает формулы с СЕГОДНЯ() при открытии файла, если не настроена соответствующая опция. Чтобы возраст всегда был актуальным:
- Перейдите в
Файл → Параметры → Формулы. - В разделе
Параметры вычисленийвыберитеАвтоматически(илиАвтоматически, кроме таблиц данных). - Поставьте галочку
Пересчитывать книгу при открытии.
Если вы работаете в Google Таблицах, формулы с TODAY() обновляются автоматически каждые 30 минут или при любом изменении в таблице.
⚠️ Внимание: В больших файлах (свыше 10 000 строк) автоматический пересчёт может замедлять работу. В этом случае используйте ручное обновление через Формулы → Вычислить лист (F9).
☑️ Проверка корректности формул возраста
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 месяцев.
🎨 Условное оформление по возрасту:
- Выделите ячейки с возрастом.
- Перейдите в
Главная → Условное форматирование → Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - Установите условие:
Значение > 60и задайте красный цвет текста (для пенсионеров). - Добавьте второе правило:
Значение < 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: Прогрессия формул
- Введите формулу для первой строки (например, в
B2). - Наведите курсор на правый нижний угол ячейки (появится крестик).
- Дважды кликните — формула скопируется до последней заполненной строки в столбце
A.
🔹 Способ 2: Таблицы Excel (Ctrl+T)
- Выделите диапазон с данными и нажмите
Ctrl+T, чтобы преобразовать в таблицу. - Введите формулу в первый столбец — она автоматически применится ко всем строкам.
🔹 Способ 3: Power Query (для продвинутых)
- Перейдите в
Данные → Получить данные → Из таблицы/диапазона. - В редакторе Power Query добавьте столбец с формулой:
= Date.From(DateTime.LocalNow()) - [Дата рождения] - Преобразуйте результат в годы, месяцы или дни.
⚠️ Внимание: При работе с большими массивами данных (свыше 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 с текущей датой автоматически (требует навыков программирования). - 📌 Вставляйте возраст как текст (без формул) перед экспортом.