Определение возраста человека по дате рождения в полных годах с помощью формул и пользовательской функции VBA Excel.
Формулы для определения возраста
Для определения возраста человека по дате рождения можно использовать следующую формулу:
1 |
=ОТБР(ДОЛЯГОДА(A1;СЕГОДНЯ())) |
Данная формула определяет возраст человека в полных годах. Дата рождения записана в ячейку «A1».
Эта формула может использоваться, когда нет ошибок в датах рождения. Если дата рождения, в результате ошибки, окажется больше текущей даты, то разница в количестве полных лет между этими датами также будет рассчитано.
Следующая формула реагирует на превышение значением даты рождения текущей даты:
1 |
=ЕСЛИ(A1<=СЕГОДНЯ();ОТБР(ДОЛЯГОДА(A1;СЕГОДНЯ()));"Указанная дата рождения относится к будущему!") |
Такая формула позволяет определить в третьей строке дату рождения с ошибкой:
Функция определения возраста
Пользовательская функция VBA Excel для определения возраста по дате рождения:
1 2 3 4 5 6 7 |
Function Age(dtBirth As Date) As Variant If Now - dtBirth >= 0 Then Age = Fix(WorksheetFunction.YearFrac(dtBirth, Now)) Else Age = "Указанная дата рождения относится к будущему!" End If End Function |
В эту функцию уже включено условие для определения ошибки по превышению значения даты рождения над значением текущей даты.
Пользовательскую функцию «Age» можно использовать в формулах:
1 |
=Age(A1) |
Вставка формулы в ячейку
Вставка формулы определения возраста по дате рождения в активную ячейку с помощью кода VBA Excel при условии, что дата рождения записана в соседнюю ячейку слева.
Вставка в активную ячейку обычной формулы:
1 2 3 4 5 |
Sub Primer1() With ActiveCell .FormulaLocal = "=ОТБР(ДОЛЯГОДА(" & .Offset(0, -1).Address & ";СЕГОДНЯ()))" End With End Sub |
Вставка формулы с пользовательской функцией:
1 2 3 4 5 |
Sub Primer2() With ActiveCell .FormulaLocal = "=Age(" & .Offset(0, -1).Address & ")" End With End Sub |