В Excel нет специальной функции, чтобы посчитать возраст, однако существует несколько различных способов его определения на основе даты рождения. Вы узнаете несколько приемов, как рассчитать его в количестве полных лет, в годах, месяцах и днях на текущий момент или на какой-то определённый момент времени. Мы объясним преимущества и недостатки каждого способа, покажем, как создать идеальную формулу расчета возраста в Экселе и настроить ее для решения некоторых конкретных задач.

В повседневной жизни вопрос «Сколько вам лет?» обычно подразумевает ответ, указывающий, сколько лет вы прожили. В Microsoft Excel вы можете создать формулу для исчисления точной продолжительности жизни в месяцах, днях, часах и даже минутах. Но давайте не будем нарушать традицию и научимся сначала считать по полным годам.

Основная формула Excel расчета для возраста в годах.

Как вы обычно определяете, сколько вам лет? Просто вычитая дату рождения из текущей. Этот традиционный подход, знакомый нам еще с детства,  может также использоваться в Excel.

Если предположить, что день рождения (ДР) записан в ячейке B2, то вычислить возраст в годах можно следующим образом:

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

=(TODAY()-B2)/365

Первая часть выражения (СЕГОДНЯ()-B2) возвращает разницу между текущей и датой рождения в днях. А затем вы делите это на 365, чтобы получить количество лет.

Формула очевидна и легко запоминаема, однако есть небольшая проблема. В большинстве случаев мы получаем число, как показано на скриншоте ниже. Что, согласитесь, несколько непривычно и не слишком удобно.

Чтобы отобразить количество прожитых лет, используйте один из предлагаемых методов округления десятичного числа до ближайшего целого:

=ЦЕЛОЕ((СЕГОДНЯ()-B2)/365)

Функция ЦЕЛОЕ округляет в меньшую сторону до ближайшего целого.

=ОКРУГЛ((СЕГОДНЯ()-B3)/365;0)

Округляет количество прожитых лет по стандартным правилам в зависимости от значения дробной части (более 0,5 — в большую сторону).

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

Округляет в меньшую сторону.

=ОТБР((СЕГОДНЯ()-B5)/365;0)

Отбрасывает дробную часть, оставляя только целое.

Во всех случаях ноль в формуле означает, что в возвращаемой цифре не должно быть ни одного десятичного разряда.

Недостатки:  использование этого выражения в Экселе дает довольно точные результаты, но не безупречные. Деление на среднее число дней в году в большинстве случаев работает нормально, но иногда все же показывает неверный возраст. Например, если кто-то родился 29 февраля, а сейчас 28 февраля, программа сделает человека на один день старше.

В качестве альтернативы вы можете использовать в знаменателе 365,25 вместо 365, поскольку каждый четвертый год состоит из 366 дней. Однако и этот подход не идеален. Например, если вы рассчитываете возраст ребенка, который еще не прожил високосный год, деление на 365,25 дает неправильный результат.

В целом, вычитание ДР из текущей даты прекрасно работает в обычной жизни, но не является идеальным подходом в Excel. Ведь мы здесь ожидаем получить точный ответ.

Далее мы поговорим о нескольких специальных функциях, которые безошибочно вычисляют возраст независимо от года.

Как определить возраст с функцией ДОЛЯГОДА.

Более надежный способ расчета, чем те, о которых мы говорили ранее, - это использование функции ДОЛЯГОДА (YEARFRAC в английском варианте), которая возвращает часть года, то есть количество целых дней между двумя датами.

Синтаксис здесь следующий:

YEARFRAC (дата_начала, дата_окончания, [базис])

Первые два аргумента очевидны и вряд ли требуют какого-либо дополнительного объяснения. А вот Базис — это аргумент, который определяет основу для подсчета дней.

Чтобы составить абсолютно точную формулу, передайте в ДОЛЯГОДА следующие значения:

  • Дата_начала - дата рождения.
  • Дата_окончания - функция СЕГОДНЯ() для использования текущего момента времени.
  • Базис - используйте 1, которая предписывает Excel делить фактическое количество дней в месяце на фактическое количество дней в году. Никаких усредненных цифр типа 360 или 365 здесь не используется.

Учитывая вышеизложенное, формула Excel для расчета возраста по дате рождения выглядит следующим образом:

=ДОЛЯГОДА(дата рождения, СЕГОДНЯ (), 1)

Предполагая, что ДР вписан в ячейку B2, выражение принимает следующий вид:

=ДОЛЯГОДА(B2, СЕГОДНЯ(), 1)

Как и в предыдущем примере, результат также является десятичным числом. Чтобы исправить это, используйте любой из подходящих вам методов округления.

Итак, вот улучшенный вариант:

Метод округления можете выбрать сами.

=ЦЕЛОЕ(ДОЛЯГОДА(B2;СЕГОДНЯ();1))

=ОКРУГЛ(ДОЛЯГОДА(B3;СЕГОДНЯ();1);0)

=ОКРУГЛВНИЗ(ДОЛЯГОДА(B4;СЕГОДНЯ();1);0)

=ОТБР(ДОЛЯГОДА(B5;СЕГОДНЯ();1);0)

Особенности применения этих функций мы уже рассмотрели выше.

Как узнать возраст в Excel при помощи РАЗНДАТ.

Еще один способ - использование функции РАЗНДАТ (DATEDIF):

= РАЗНДАТ(дата_нач; дата_кон; аргумент)

где

дата_нач и дата_кон - две даты, разницу между которыми необходимо рассчитать,

Она может возвращать разницу в различных единицах времени, таких как годы, месяцы и дни, в зависимости от параметра, который вы задаете в аргументе:

  • Y - возвращает количество лет.
  • M - количество месяцев.
  • D - количество дней.
  • YM - возвращает месяцы, игнорируя дни и годы.
  • MD - разница в днях, игнорируя месяцы и годы.
  • YD - разница в днях, игнорируя годы.

Поскольку мы хотим подсчитать возраст в годах, мы используем параметр «Y»:

=РАЗНДАТ( дата рождения, СЕГОДНЯ(), "Y")

В этом примере день рождения записан в ячейке B2, и вы ссылаетесь на него в своей формуле возраста:

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

В этом случае дополнительная операция округления не требуется, так как РАЗНДАТ с аргументом "Y" сразу выводит количество лет.

Рассчитываем в днях, месяцах и годах.

Высчитывать можно не только количество лет, как это обычно принято, но и более мелкие единицы времени.

Давайте попробуем рассчитать полный возраст, который включает в себя дни, месяцы и годы.

Фактически, определение чьего-либо возраста на основе даты рождения является частным случаем расчета разницы в датах в Excel, где конечной датой является текущий момент времени. Итак, вы используете обычную функцию РАЗНДАТ:

=РАЗНДАТ(B2;СЕГОДНЯ();"Y")&" лет, "&РАЗНДАТ(B2;СЕГОДНЯ();"YM")&" мес., "&РАЗНДАТ(B2;СЕГОДНЯ();"MD")&" д."

Где В2 - дата рождения.

Ну а если нужно сделать совсем красиво, используйте более сложное выражение:

=ЕСЛИ(РАЗНДАТ(B2;СЕГОДНЯ();"y");РАЗНДАТ(B2;СЕГОДНЯ();"y")&" "&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;СЕГОДНЯ();"y")-11;100);9);10);"[<1]\го\д;[<4]\го\да;лет")&" ";)& ЕСЛИ(РАЗНДАТ(B2;СЕГОДНЯ();"ym");РАЗНДАТ(B2;СЕГОДНЯ();"ym")&" меся"&ТЕКСТ(ОСТАТ(РАЗНДАТ(B2;СЕГОДНЯ();"ym")-1; 11);"[<1]ц;[<4]ца;цев")&" ";)& ЕСЛИ(РАЗНДАТ(B2;СЕГОДНЯ();"md");РАЗНДАТ(B2;СЕГОДНЯ();"md")&" д"&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;СЕГОДНЯ();"md")-11;100);9); 10);"[<1]ень;[<4]ня;ней");)

И вот что получится:

Более подробно об использовании функции РАЗНДАТ читайте в материале о расчете разности между датами в Excel.

Сколько вам будет на определённую дату?

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

Кстати, аналогичным образом можно определять и величину трудового стажа.

Итак, вот как это может выглядеть:

Вот расчет:

=РАЗНДАТ(B2;C3;"Y")&" лет, "&РАЗНДАТ(B2;C3;"YM")&" мес., "&РАЗНДАТ(B2;C3;"MD")&" д."

или же —

=ЕСЛИ(РАЗНДАТ(B2;C3;"y");РАЗНДАТ(B2;C3;"y")&" "&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;C3;"y")-11;100);9);10);"[<1]\го\д;[<4]\го\да;лет")&" ";)& ЕСЛИ(РАЗНДАТ(B2;C3;"ym");РАЗНДАТ(B2;C3;"ym")&" меся"&ТЕКСТ(ОСТАТ(РАЗНДАТ(B2;C3;"ym")-1; 11);"[<1]ц;[<4]ца;цев")&" ";)& ЕСЛИ(РАЗНДАТ(B2;C3;"md");РАЗНДАТ(B2;C3;"md")&" д"&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;C3;"md")-11;100);9); 10);"[<1]ень;[<4]ня;ней");)

Сколько вам будет лет в определенный год?

Эта формула полезна в ситуациях, когда полная дата для расчета не определена, и вы знаете только год.

Допустим, вы работаете с медицинской базой данных, и ваша цель – выяснить, сколько лет пациенту на момент последнего полного медицинского обследования.

Если предположить, что ДР указан в столбце B, начиная со строки 2, а год последнего медицинского осмотра находится в столбце C, то расчет выглядит следующим образом:

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

Поскольку точный срок медицинского осмотра не определен, вы используете функцию ДАТА с произвольным аргументом дня и месяца, например, DATА(C3; 1; 1).

Функция ДАТА извлекает номер года из ячейки С2, создает полную дату, используя введенные вами номера месяца и дня (в этом примере 1 января), и передает ее в РАЗНДАТ. В результате вы получаете сумму прожитых пациентом лет по состоянию на 1 января определенного года.

Узнайте дату, когда человек достигает N лет

Предположим, ваш друг родился 21 марта 1974 года. Как вам определить, когда ему исполняется 50 лет? Обычно вы просто добавляете 50 лет к ДР человека. В Excel вы делаете то же самое, используя ДАТА:

=ДАТА(ГОД(B2) + 50; МЕСЯЦ(B2); ДЕНЬ(B2))

Где B2 - день рождения.

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

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

Также рекомендуем о работе с датами:

Функция Excel СЕГОДНЯ — синтаксис и основные применения - Функция СЕГОДНЯ в Excel делает именно то, на что указывает ее имя - возвращает сегодняшнюю дату. Синтаксис ее настолько прост, насколько это вообще возможно - у нее вообще нет аргументов. Всякий…
Как быстро вставить сегодняшнюю дату в Excel? - Это руководство показывает различные способы ввода дат в Excel. Узнайте, как вставить сегодняшнюю дату и время в виде статической метки времени или динамических значений, как автоматически заполнять столбец или строку…
Количество рабочих дней между двумя датами в Excel - Довольно распространенная задача: определить количество рабочих дней в период между двумя датами – это частный случай расчета числа дней, который мы уже рассматривали ранее. Тем не менее, в Excel для…
Как посчитать количество дней между датами в Excel? Примеры и советы. - Из этого обзора вы узнаете несколько быстрых и простых способов подсчета, сколько дней проходит между двумя датами в Excel. Вам интересно, сколько составляет разница в днях, месяцах и годах между…
Как преобразовать текст в дату в Excel или извлечь ее из сложной фразы? - Сейчас вы научитесь использовать функции Excel для преобразования текста в дату. Вы также узнаете, как это сделать без использования формул. Поскольку Excel - не единственное приложение, которое вы используете, иногда…