KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как рассчитать возраст в годах, месяцах и днях на основе даты рождения в Excel?

АвторСаньДата изменения

Во многих практических ситуациях — будь то управление кадрами, ведение медицинских карт, работа со студенческими базами данных или системами членства — крайне важно точно определять полный возраст человека в годах, месяцах и днях на основе его даты рождения. Если у вас в Excel есть список дат рождения, вам, вероятно, понадобится быстро рассчитать точный возраст каждого человека — либо в подробном формате (годы, месяцы и дни), либо в виде десятичного или целого числа. Такой подход обеспечивает высокую точность данных, необходимую для проверки соответствия требованиям, применения правил и отслеживания ключевых событий. В этой статье вы найдёте несколько эффективных методов для выполнения подобных расчётов возраста в Excel.
расчет возраста в годах, месяцах и днях

Содержание

Расчёт возраста в годах, месяцах и днях по дате Дата рождения

Расчёт возраста в виде десятичного числа по дате Дата рождения

Расчёт возраста в виде целого числа по дате Дата рождения хорошая идея3

Код VBA — автоматизация расчёта возраста по большому набору данных с помощью пользовательских макросов

Другие встроенные методы Excel — использование Power Query для расчёта возраста путём преобразования данных


Расчёт возраста в годах, месяцах и днях по дате Дата рождения

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

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

=DATEDIF(A2,$F$2,«Y»)&« лет, »&DATEDIF(A2,$F$2,«YM»)&« месяцев, »&DATEDIF(A2,$F$2,«MD»)&« дней»

После ввода формулы нажмите Enter. Затем используйте маркер автозаполнения Excel, чтобы протянуть формулу вниз и заполнить дополнительные строки по мере необходимости.

В этой формуле A2 ссылается на ячейку с датой рождения, а F2 — на ячейку с контрольной датой (например, сегодняшней). Такая структура обеспечивает точный расчёт возраста, но убедитесь, что обе ячейки отформатированы как даты. Если вы получите ошибку #ЧИСЛО!, это может означать, что дата рождения указана позже контрольной даты — внимательно проверьте введённые значения.
применение формулы для расчета возраста в годах, месяцах и днях


Расчёт возраста в виде десятичного числа по дате Дата рождения

Когда возраст нужно представить в виде десятичного числа — например, для статистических отчётов, быстрой группировки по возрасту или определения пороговых значений допуска, — на помощь приходит компактная формула. Она выдаёт значение вроде «24,11», что значительно упрощает анализ и фильтрацию данных.

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

=DATEDIF(A2,$F$2,«Y»)&"."&DATEDIF(A2,$F$2,«YM»)

Нажмите Enter, чтобы подтвердить формулу, и протяните маркер заполнения вниз — формула автоматически применится ко всем остальным строкам.

Как и в предыдущем методе, A2 содержит вашу дату рождения, а F2 должна быть задана как текущая или контрольная дата. Убедитесь, что ячейки с датами правильно отформатированы. Хотя этот метод прост и удобен для работы с числовыми данными, учтите: он не учитывает дни. Если требуется такой уровень детализации, используйте метод полного разбиения.
применение формулы для расчета возраста в виде десятичного числа


Расчёт возраста в виде целого числа по дате Дата рождения

Если ваша цель — получить возраст в виде целого числа (что часто требуется для определения образовательной допустимости, страхования или контроля доступа), то целочисленный результат будет не только достаточным, но и зачастую обязательным. Kutools для Excel упрощает эту задачу с помощью специальной функции «Рассчитать возраст на основе даты рождения», избавляя вас от необходимости вручную вводить сложные формулы. Это особенно удобно при работе с большими списками или при регулярном выполнении подобных расчётов.

Kutools для Excelпредлагает более 300 расширенных функций для упрощения сложных задач, повышая креативность и эффективность.Интегрировано с возможностями ИИ, Kutools автоматизирует задачи с высокой точностью, делая управление данными простым и удобным.Подробная информация о Kutools для Excel…         Бесплатная пробная версия…

После бесплатной установкиKutools для Excel выполните следующие действия:

1. Выберите ячейку, в которой должен отображаться рассчитанный возраст, затем нажмите Kutools > Помощник формул > Помощник формул.
нажмите функцию «Помощник формул» Kutools

2. В диалоговом окне Помощник формул выберите Рассчитать возраст на основе даты рождения в разделе Выберите формулу, затем укажите ячейку с датой рождения в поле ввода Date и нажмите OK.
выберите формулу «Рассчитать возраст по дате рождения» и задайте аргументы

3. Теперь возраст будет рассчитываться как целое число; при необходимости протяните маркер заполнения вниз, чтобы применить расчёт ко всем нужным ячейкам. Этот подход устраняет ошибки ручного ввода и значительно упрощает выполнение повторяющихся операций по расчёту возраста.
возраст рассчитан в виде целого числа

Совет: Если вы хотите, чтобы возраст автоматически обновлялся с течением времени, убедитесь, что контрольная дата в Excel задана как =TODAY().


Код VBA — автоматизация расчёта возраста по большому набору данных с помощью пользовательских макросов

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

1. Нажмите Разработчик > Visual Basic, чтобы открыть окно Microsoft Visual Basic для приложений. Затем выберите Вставка > Модуль и введите в модуль следующий код:

Function AgeYMD(ByVal dob As Date, ByVal refDate As Date) As String
'Updated by Extendoffice 20250902
    Dim y As Long, m As Long, d As Long
    Dim t As Date

    If Not IsDate(dob) Or Not IsDate(refDate) Or refDate < dob Then
        AgeYMD = "Invalid date"
        Exit Function
    End If

    ' Years
    y = Year(refDate) - Year(dob)
    If DateSerial(Year(refDate), Month(dob), Day(dob)) > refDate Then y = y - 1

    ' Move dob forward by y years
    t = DateAdd("yyyy", y, dob)

    ' Months
    m = DateDiff("m", t, refDate)
    If DateAdd("m", m, t) > refDate Then m = m - 1

    ' Move temp forward by m months
    t = DateAdd("m", m, t)

    ' Days (now always >= 0)
    d = refDate - t

    AgeYMD = y & " Years, " & m & " Months, " & d & " Days"
End Function

Sub CalculateAgesAllRows()
    Dim ws As Worksheet, lastRow As Long, birthCell As Range, resultCell As Range
    Dim refDate As Date, xTitleId As String
    xTitleId = "KutoolsforExcel"

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Example prompt; default is today. Make sure you enter a valid date (e.g., 2025-09-02)
    refDate = Application.InputBox("Enter reference date (e.g., 2025-09-02)", _
                                   xTitleId, Date, Type:=1)

    For Each birthCell In ws.Range("A2:A" & lastRow)
        Set resultCell = ws.Cells(birthCell.Row, "B")
        If IsDate(birthCell.Value) Then
            resultCell.Value = AgeYMD(CDate(birthCell.Value), refDate)
        Else
            resultCell.Value = "Invalid date"
        End If
    Next birthCell
End Sub

2. Нажмите кнопку кнопка «Выполнить» Run button to execute. Вам будет предложено ввести опорную дату (например, сегодняшнюю). Макрос запишет рассчитанный возраст для каждой строки в столбец B рядом с датой рождения из столбца A.

Советы: Убедитесь, что столбец A содержит корректные даты, причём первая строка — заголовок (данные начинаются с A2). Если результаты отображают «Недопустимая дата», проверьте формат ячеек в исходном столбце.

Такая автоматизация с помощью VBA повышает эффективность при работе с большими или регулярно обновляемыми наборами данных, но требует файлов, поддерживающих макросы, и корректной настройки параметров Центра управления безопасностью. Если вы предпочитаете обходиться без кода, рассмотрите Power Query как альтернативу без программирования.


Другие встроенные методы Excel — использование Power Query для расчёта возраста путём преобразования данных

Power Query предлагает удобный и не требующий программирования способ расчёта возраста прямо в современном интерфейсе Excel. Загрузив таблицу с датами рождения в Power Query, вы можете добавить пользовательский столбец для автоматического вычисления возраста в годах, месяцах и днях — без формул и ручного копирования. Этот метод настоятельно рекомендуется пользователям, работающим с импортированными данными или регулярно выполняющим преобразования и обновления расчётов.

Этапы выполнения:

1. Выделите таблицу с датами рождения и перейдите в меню Данные > Из таблицы/диапазона, чтобы загрузить данные в Power Query.

2. В редакторе Power Query выберите Добавить столбец > Пользовательский столбец.

3. В поле формулы введите следующий код M для расчёта возраста в годах:

Date.Year(DateTime.LocalNow()) - Date.Year([DateOfBirth])

Замените DateOfBirth на заголовок вашего столбца, если необходимо.

используйте формулу для расчета лет в Power Query

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

let
    Today   = Date.From(DateTime.LocalNow()),
    Birth   = Date.From([Birthday]), Years   = Date.Year(Today) - Date.Year(Birth) -
              (if Date.AddYears(Birth, Date.Year(Today)-Date.Year(Birth)) > Today then 1 else 0),
    AnchorY = Date.AddYears(Birth, Years),
    mDiff   = (Date.Year(Today)-Date.Year(AnchorY))*12 + (Date.Month(Today)-Date.Month(AnchorY)),
    Months  = if Date.AddMonths(AnchorY, mDiff) > Today then mDiff-1 else mDiff,
    AnchorM = Date.AddMonths(AnchorY, Months),
    Days    = Duration.Days(Today - AnchorM)
in
    Text.From(Years) & " years " & Text.From(Months) & " months " & Text.From(Days) & " days"
используйте формулу для расчета лет, месяцев и дней в Power Query

4. Нажмите OK. В результате вы получите столбец с возрастом — в годах или в годах, месяцах и днях, в зависимости от использованного кода.

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

Примечания и устранение неполадок:

  • Power Query эффективно обрабатывает большие объёмы данных и автоматически пересчитывает их при обновлении.
  • Если в столбце «Дата рождения» есть недопустимые или пустые значения, обязательно очистите данные перед созданием пользовательских столбцов.
  • Обязательно сверьте названия столбцов и при необходимости скорректируйте формулы.

Power Query идеально подходит пользователям, которым нужен динамичный и многократно используемый инструмент без необходимости писать формулы Excel или макросы. Однако он может быть недоступен в версиях Excel старше 2016 года или в Excel Online — в зависимости от набора функций.


Устранение неполадок и рекомендации:
Независимо от выбранного метода расчёта возраста всегда убедитесь, что исходные ячейки отформатированы как «Дата», и внимательно проверяйте логику при появлении неожиданных результатов — например, отрицательного возраста или ошибок. При использовании формул статические даты-ссылки со временем не обновляются, поэтому применяйте =TODAY(), чтобы возраст оставался актуальным. Решения на основе VBA и Power Query лучше подходят для сложных, масштабных или регулярно обновляемых отчётов. Тщательно оцените свои задачи, чтобы выбрать наиболее эффективный подход именно для вашего рабочего процесса. Всегда сохраняйте файл перед запуском макросов или выполнением масштабных преобразований, а при необходимости создавайте резервную копию — это поможет избежать потери данных или нежелательных изменений.


Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции…
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул…
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий…
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором…
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов…
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек