Расчет возраста в Excel: от простых лет до точного стажа
Чтобы вычислить точный возраст в Excel по дате рождения, используйте функцию =DATEDIF(ячейка_с_датой; СЕГОДНЯ(); "Y"). Она автоматически считает полные годы, учитывая високосные дни и текущую дату. Для более детального расчета (месяцы, дни) или работы со старыми версиями программы существуют альтернативные методы, которые мы разберем ниже.
Самый надежный способ: функция DATEDIF
Функция DATEDIF (от англ. Date Difference) — скрытый, но стандартный инструмент Excel для вычисления разницы между двумя датами. Она идеально подходит для кадрового учета и официальных отчетов, так как возвращает именно количество полных прошедших периодов.
Базовая формула для получения возраста в годах:
=DATEDIF(A2; СЕГОДНЯ(); "Y")
Где:
A2— ячейка с датой рождения.СЕГОДНЯ()— функция, подставляющая текущую дату (обновляется при каждом открытии файла)."Y"— параметр, указывающий на расчет полных лет (Years).
Защита от ошибок ввода. Если в ячейку случайно попадет дата из будущего, формула выдаст ошибку #ЧИСЛО!. Чтобы этого избежать, оберните расчет в проверку:
=ЕСЛИ(A2>СЕГОДНЯ(); "Ошибка"; DATEDIF(A2; СЕГОДНЯ(); "Y"))
Детальный расчет: годы, месяцы и дни
Иногда требуется узнать не просто количество лет, а точный стаж или возраст с разбивкой до дней. Функция DATEDIF позволяет комбинировать разные единицы измерения.
Таблица параметров функции
| Код | Что возвращает | Пример использования |
|---|---|---|
| "Y" | Полные годы | Возраст человека |
| "M" | Полные месяцы | Общий срок в месяцах |
| "D" | Полные дни | Общий срок в днях |
| "YM" | Месяцы без учета лет | Остаток месяцев после полных лет |
| "MD" | Дни без учета лет и месяцев | Остаток дней после полных месяцев |
| "YD" | Дни без учета года | Дней с последнего дня рождения |
Формула полного возраста
Что получить строку вида «40 лет 5 мес. 12 дней», сцепите три функции через амперсанд (&):
=DATEDIF(A2; СЕГОДНЯ(); "Y") & " лет " & DATEDIF(A2; СЕГОДНЯ(); "YM") & " мес. " & DATEDIF(A2; СЕГОДНЯ(); "MD") & " дн."
Альтернативный метод: математический расчет
В очень старых версиях Excel или специфических настройках функция DATEDIF может быть недоступна. В таком случае можно использовать математическое вычитание дат. В Excel даты хранятся как числа (порядковый номер дня), поэтому их можно вычитать.
Формула для приблизительного расчета полных лет:
=ЦЕЛОЕ((СЕГОДНЯ()-A2)/365,25)
- Разность
СЕГОДНЯ()-A2дает количество прожитых дней. - Деление на
365,25учитывает високосные годы (в среднем). - Функция
ЦЕЛОЕ(илиINTв англ. версии) отбрасывает дробную часть, оставляя только полные годы.
Избегайте простой разницы годов. Формула =ГОД(СЕГОДНЯ())-ГОД(A2) неверна. Она игнорирует месяц и день. Если человек родился 31 декабря 2000 года, а сегодня 1 января 2026 года, эта формула покажет 26 лет, хотя человеку исполнился только 25 лет и 1 день.
Пошаговая инструкция по созданию таблицы
Для автоматического расчета возраста в списке сотрудников или клиентов выполните следующие действия:
- Подготовьте шапку таблицы. В ячейку
A1напишите «Дата рождения», вB1— «Возраст (полных лет)». - Проверьте формат данных. Выделите столбец с датами, нажмите
Ctrl+1, выберите формат «Дата». Убедитесь, что Excel распознает записи как даты, а не как текст. - Введите формулу. В ячейку
B2вставьте:=DATEDIF(A2; СЕГОДНЯ(); "Y").- Примечание: В русской версии Excel разделителем аргументов является точка с запятой (
;).
- Примечание: В русской версии Excel разделителем аргументов является точка с запятой (
- Протяните формулу. Наведите курсор на правый нижний угол ячейки
B2(появится черный крестик) и дважды кликните или протяните вниз до конца списка.
Расчет возраста на конкретную дату
Если вам нужно рассчитать возраст не на сегодняшний день, а на определенную дату (например, для отчета на конец квартала или на момент приема на работу), замените функцию СЕГОДНЯ() на функцию ДАТА или ссылку на ячейку с нужной числом.
Пример расчета возраста на 31 декабря 2026 года:
=DATEDIF(A2; ДАТА(2026; 12; 31); "Y")
Или, если целевая дата записана в ячейке C1:
=DATEDIF(A2; C1; "Y")
Группировка по возрастным категориям
Полученный числовой возраст можно использовать для автоматической категоризации людей с помощью вложенных условий.
Пример формулы для определения статуса:
=ЕСЛИ(B2<18; "Несовершеннолетний"; ЕСЛИ(B2<65; "Трудоспособный"; "Пенсионер"))
Эту логику удобно применять для фильтрации баз данных или создания сводных таблиц.
Частые ошибки и их решение
-
#ИМЯ? (или #NAME?)
- Причина: Опечатка в названии функции или использование английской версии функции в русском Excel (и наоборот).
- Решение: Проверьте написание
DATEDIF(работает в любой локали) или используйте русское название, если оно отображается в мастере функций. Убедитесь, что разделители аргументов соответствуют настройкам системы (обычно;).
-
#ЧИСЛО! (или #NUM!)
- Причина: Дата рождения больше текущей даты (человек еще не родился).
- Решение: Используйте проверку
ЕСЛИ, описанную выше.
-
Формула возвращает 0 или неверное значение
- Причина: Ячейка с датой рождения имеет текстовый формат (например, "15.05.1985" воспринимается как текст).
- Решение: Преобразуйте текст в дату через «Текст по столбцам» или измените формат ячейки и перепроверьте данные.
FAQ
Можно ли посчитать возраст в месяцах?
Да, используйте код "M" вместо "Y": =DATEDIF(A2; СЕГОДНЯ(); "M"). Это вернет общее количество полных месяцев жизни.
Обновляется ли возраст автоматически?
Да, если используется функция СЕГОДНЯ(), значение пересчитывается каждый раз при открытии файла или внесении любых изменений в книгу. Если нужна статичная дата, используйте функцию ДАТА.
Работает ли это в Google Таблицах?
Да, функция DATEDIF полностью поддерживается в Google Sheets с тем же синтаксисом.