Перейти к содержимому

Вычисление возраста в Excel

Вычислить возраст человека непросто, так как результат зависит не только от текущего года, но и дня. Кроме того, необходимо учесть осложнения, возникающие из-за високосных годов. Мы рассмотрим три метода вычисления возраста человека (рис. 1). [1]

%d1%80%d0%b8%d1%81-1-%d0%b2%d1%8b%d1%87%d0%b8%d1%81%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2%d0%be%d0%b7%d1%80%d0%b0%d1%81%d1%82%d0%b0-%d1%87%d0%b5%d0%bb%d0%be%d0%b2%d0%b5%d0%ba%d0%b0

Рис. 1. Вычисление возраста человека

Скачать заметку в формате Word или pdf, примеры в формате Excel

Метод 1. Следующая формула вычитает дату рождения из текущей даты и делит результат на 365,25. Функция ЦЕЛОЕ отсекает дробную часть результата: =ЦЕЛОЕ((B2-B1)/365,25). Эта формула не точна на 100%, так как делителем является среднее количество дней в году. Допустим, есть ребенок, которому ровно 1 год. Для него эта формула вернет 0 в обычный год, и 1 – в високосный (рис. 2).

%d1%80%d0%b8%d1%81-2-%d1%80%d0%b0%d0%b7%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%b4%d0%b0%d1%82-%d0%b4%d0%b5%d0%bb%d0%b5%d0%bd%d0%bd%d0%b0%d1%8f-%d0%bd%d0%b0-36525-%d0%b8%d0%bd%d0%be%d0%b3%d0%b4%d0%b0

Рис. 2. Разность дат, деленная на 365,25 иногда дает осечку

Метод 2. Более точный метод подсчета возраста связан с использованием функции ДОЛЯГОДА: =ЦЕЛОЕ(ДОЛЯГОДА(B1;B2)). Как правило, функция ДОЛЯГОДА используется в финансовых расчетах, но подходит и для вычисления возраста. Эта функция рассчитывает долю года, соответствующую целому количеству дней между двумя датами. Функция ЦЕЛОЕ удаляет дробную часть результата и возвращает целое число, соответствующее количеству полных лет.

Метод 3. Данный метод вычисления возраста связан с использованием функции РАЗНДАТ: =РАЗНДАТ(В1;В2;"y"). Это недокументированная функция, которой нет в списке функций, и она не появляется в подсказке, если начать набирать формулу =раз… Правда, ее описание есть в справке Excel.

Эта функция сохранена в Excel для обеспечения совместимости с Lotus 1-2-3. Функция рассчитывает разницу между двумя датами и выражает результат в месяцах, днях или годах. Синтаксис функции РАЗНДАТ(нач_дата;кон_дата;единица). Нач_дата и кон_дата — это стандартные даты (здесь также может стоять ссылка на ячейку, в которой содержится дата). Нач_дата должна быть меньше или равна кон_дата. Третий аргумент – единица – представляет собой текстовую строку, указывающую единицы времени, в которых будет выражен возвращаемый результат. Основные коды интервалов: m — количество полных месяцев, d — количество дней, у — количество полных лет. Аргумент единица может принимать и несколько других значений (подробнее см. справку).

Можно выразить возраст с точностью до дня: =РАЗНДАТ(B1;B2;"y")&" лет "&РАЗНДАТ(B1;B2;"ym")&" месяцев "&РАЗНДАТ(B1;B2;"md")&" дней". Правда, в связи с особенностями русского языка, иногда это будет выглядеть коряво.

[1] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 126, 127.

9 комментариев для “Вычисление возраста в Excel”

  1. Очень полезная информация. Спасибо автору.

  2. для неотягощенного волшебными заклинаниями 2003 офиса расчет количества полных лет:

    =ЕСЛИ(МЕСЯЦ($B$2)>МЕСЯЦ(D10);ГОД($B$2)-ГОД(D10);ЕСЛИ(МЕСЯЦ($B$2)ДЕНЬ(D10);ГОД($B$2)-ГОД(D10);ЕСЛИ(ДЕНЬ($B$2)<ДЕНЬ(D10);ГОД($B$2)-ГОД(D10)-1;ГОД($B$2)-ГОД(D10)))))

    $B$2 — ячейка с расчетной датой,
    D10 — дата рождения

  3. благодарю! и за полезную информацию и за полезный комментарий от CAI

  4. Аркадий

    Можно вычислить полное количество лет, если сравнить расчетную дату, но заменив в ней год на год даты рождения, с самой датой рождения. Если она получится меньше даты рождения, то возраст равен разнице между годом расчетной даты и годом рождения -1 год.
    Важно даты сравнивать именно приведя к одному году. Иначе количество дней может зависеть от того, сколько дней в феврале.
    =ЕСЛИ(ДАТАЗНАЧ(ДЕНЬ($B$2)&"."&МЕСЯЦ($B$2)&"."&ГОД(A3))<A3;ГОД($B$2)-ГОД(A3)-1;ГОД($B$2)-ГОД(A3))

    $B$2 — ячейка с расчетной датой,
    A3 — дата рождения

    Или от сегодняшнего дня. Это полезно, если у вас таблица с днями рождений сотрудников, например.
    =ЕСЛИ(ДАТАЗНАЧ(ДЕНЬ(СЕГОДНЯ())&"."&МЕСЯЦ(СЕГОДНЯ())&"."&ГОД(A3))<A3;ГОД(СЕГОДНЯ())-ГОД(A3)-1;ГОД(СЕГОДНЯ())-ГОД(A3))

  5. =ЦЕЛОЕ(ДОЛЯГОДА(ячейка с датой рождения;СЕГОДНЯ()))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *