Расчет возраста и разницы между датами в Excel

Иван Корнев·13.04.2026·3 мин

Чтобы быстро посчитать разницу в днях, месяцах или точный возраст в Excel, используйте функцию РАЗНМЕСЯЦЕВ (DATEDIF) в сочетании с арифметическими операциями. Самый простой способ узнать количество дней — вычесть одну дату из другой (=B1-A1), а для полного возраста (годы, месяцы, дни) потребуется комбинация функций ЦЕЛОЕ, МОД и РАЗНМЕСЯЦЕВ. Ниже приведены готовые формулы для любых версий Excel.

Главный секрет: В русском Excel скрытая, но мощная функция для работы с датами называется РАЗНМЕСЯЦЕВ. Она умеет считать полные годы, месяцы и дни, игнорируя неполные периоды.

Как рассчитать разницу в днях

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

Формула:

=КОНЕЧНАЯ_ДАТА - НАЧАЛЬНАЯ_ДАТА

Пример: Если в ячейке A1 дата рождения, а в B1 текущая дата:

=B1 - A1

Не забудьте отформатировать ячейку с результатом как «Общий» или «Числовой», иначе Excel может попытаться отобразить результат снова как дату.

Рабочие дни без выходных

Если нужно исключить субботы и воскресенья (например, для расчета срока проекта), используйте функцию ЧИСТРАБДНИ:

=ЧИСТРАБДНИ(НАЧАЛЬНАЯ_ДАТА; КОНЕЧНАЯ_ДАТА)

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

Подсчет полных месяцев

Для расчета количества полных месяцев между датами идеально подходит функция РАЗНМЕСЯЦЕВ. Она считает только завершившиеся месяцы.

Формула:

=РАЗНМЕСЯЦЕВ(НАЧАЛЬНАЯ_ДАТА; КОНЕЧНАЯ_ДАТА; "M")

Аргумент "M" означает месяц (Month).

Если нужно получить красивый текст вида «76 мес. 14 дн.», можно скомбинировать формулы:

=РАЗНМЕСЯЦЕВ(A1; B1; "M") & " мес. " & (ДЕНЬ(B1) - ДЕНЬ(A1)) & " дн."

Если конечная дата раньше начальной, формула вернет ошибку #ЧИСЛО!. Для защиты добавьте проверку: =ЕСЛИ(B1<A1; "Дата в будущем"; РАЗНМЕСЯЦЕВ(A1; B1; "M"))

Вычисление полных лет (возраст)

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

Универсальная формула (работает во всех версиях):

=ЦЕЛОЕ(РАЗНМЕСЯЦЕВ(ДАТА_РОЖДЕНИЯ; СЕГОДНЯ(); "M") / 12)

Или более короткий вариант с аргументом "Y" (Year):

=РАЗНМЕСЯЦЕВ(ДАТА_РОЖДЕНИЯ; СЕГОДНЯ(); "Y")

Альтернатива через дни: Можно разделить разницу в днях на среднее количество дней в году (365,25, чтобы учесть високосные годы):

=ЦЕЛОЕ((СЕГОДНЯ() - ДАТА_РОЖДЕНИЯ) / 365,25)

Этот метод менее точен для пограничных дат (день в день рождения), поэтому лучше использовать РАЗНМЕСЯЦЕВ.

Точный возраст: годы, месяцы и дни

Чтобы получить детальную расшифровку возраста (например, «30 лет, 5 мес., 12 дн.»), нужно собрать формулу из трех частей.

Готовая формула для копирования: (Замените A1 на ячейку с датой рождения)

=РАЗНМЕСЯЦЕВ(A1; СЕГОДНЯ(); "Y") & " г. " & 
 РАЗНМЕСЯЦЕВ(A1; СЕГОДНЯ(); "YM") & " м. " & 
 РАЗНМЕСЯЦЕВ(A1; СЕГОДНЯ(); "MD") & " дн."

Расшифровка аргументов:

  • "Y" — полные годы.
  • "YM" — остаток месяцев после вычета полных лет.
  • "MD" — остаток дней после вычета полных месяцев.

Используйте функцию =СЕГОДНЯ() вместо конкретной даты, чтобы возраст обновлялся автоматически каждый день при открытии файла.

Пример детального расчета по ячейкам

Если одна длинная формула кажется сложной, разбейте расчет на столбцы:

ЯчейкаФормулаОписание
C1 (Годы)=РАЗНМЕСЯЦЕВ(A1; B1; "Y")Полные годы
D1 (Месяцы)=РАЗНМЕСЯЦЕВ(A1; B1; "YM")Оставшиеся месяцы
E1 (Дни)=РАЗНМЕСЯЦЕВ(A1; B1; "MD")Оставшиеся дни
F1 (Итог)=C1 & " лет " & D1 & " мес. " & E1 & " дн."Текстовый вывод

Частые ошибки

  1. Результат отображается как дата (#####).
    • Причина: Ячейка с результатом отформатирована как «Дата».
    • Решение: Выделите ячейку, нажмите Ctrl+1 и выберите формат «Общий» или «Числовой».
  2. Ошибка #ЗНАЧ!.
    • Причина: Дата записана как текст (например, «01.01.2020» с лишними пробелами или в неверном формате системы).
    • Решение: Убедитесь, что даты выровнены по правому краю ячейки (признак числа). Используйте «Текст по столбцам» для исправления формата.
  3. Отрицательное значение дней.
    • Причина: При ручном вычитании дней (ДЕНЬ(Конец) - ДЕНЬ(Начало)) может получиться минус, если день конца месяца меньше дня начала.
    • Решение: Всегда используйте аргумент "MD" в функции РАЗНМЕСЯЦЕВ, она сама корректно обрабатывает переход через месяцы.

FAQ

Как посчитать возраст на конкретную дату в прошлом или будущем? Вместо функции СЕГОДНЯ() вставьте ссылку на ячейку с нужной датой или укажите дату явно: =РАЗНМЕСЯЦЕВ(A1; "31.12.2030"; "Y").

Работает ли это в старых версиях Excel (2010, 2013)? Да, функция РАЗНМЕСЯЦЕВ присутствует во всех версиях Excel, начиная с очень ранних, хотя она не всегда отображается в списке подсказок функций. Ее нужно вводить вручную.

Как учесть високосные годы? Функции РАЗНМЕСЯЦЕВ и ЧИСТРАБДНИ уже учитывают календарную логику, включая високосные годы. Вам не нужно добавлять дополнительные коэффициенты.