Мастер работы с датами в Excel: от автообновления до расчета стажа

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

Чтобы получить текущую дату в Excel, используйте функцию =СЕГОДНЯ(), а для вычисления возраста по дате рождения — комбинацию =DATEDIF(дата_рождения; СЕГОДНЯ(); "Y"). Эти две формулы решают 90% задач по работе со временем: от автоматических штампов в отчетах до расчета стажа сотрудников. Ниже приведены подробные инструкции, готовые шаблоны формул и разбор частых ошибок, которые мешают корректным вычислениям.

Главное правило: Функции СЕГОДНЯ() и ТЕПЕРЬ() являются волатильными. Их значение обновляется при каждом открытии файла или пересчете листа. Если вам нужна статичная дата (которая не изменится завтра), используйте горячие клавиши Ctrl + ; (для даты) или Ctrl + Shift + ; (для времени).

Автоматическое получение текущей даты и времени

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

Основные функции

ЗадачаФормулаОписание
Только дата=СЕГОДНЯ()Возвращает текущую дату (например, 13.04.2026). Время обнуляется.
Дата и время=ТЕПЕРЬ()Возвращает текущие дату и время с точностью до секунды.
Статичная датаCtrl + ;Вставляет текущую дату как фиксированное значение (не формулу).

Настройка отображения

Часто после ввода формулы ячейка показывает набор цифр (например, 45395). Это внутренний формат хранения дат в Excel. Чтобы исправить это:

  1. Выделите ячейку с формулой.
  2. Нажмите Ctrl + 1 (или правой кнопкой мыши → Формат ячеек).
  3. Выберите категорию Дата или Время и нужный шаблон (например, ДД.ММ.ГГГГ ЧЧ:ММ).

Лайфхак для заголовков: Если вы создаете шаблон отчета, впишите в ячейку заголовка текст "Отчет от: " & ТЕКСТ(СЕГОДНЯ(); "ДД.ММ.ГГГГ"). При каждом открытии файла дата будет подтягиваться автоматически в читаемом виде.

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

Самый надежный способ рассчитать возраст — использовать скрытую, но официально поддерживаемую функцию DATEDIF. Она умеет считать разницу в годах, месяцах и днях, учитывая високосные годы.

Предположим, дата рождения находится в ячейке A2.

Точный возраст в полных годах

=DATEDIF(A2; СЕГОДНЯ(); "Y")

Аргумент "Y" (Year) возвращает количество полных лет.

Возраст с указанием месяцев

Если нужно уточнить возраст (например, для медицинских карт или детских садов):

=DATEDIF(A2; СЕГОДНЯ(); "Y") & " лет, " & DATEDIF(A2; СЕГОДНЯ(); "YM") & " мес."

Аргумент "YM" считает месяцы, игнорируя полные года.

Расчет стажа работы (дни, месяцы, годы)

Для отдела кадров часто требуется детализация до дней:

=DATEDIF(A2; СЕГОДНЯ(); "Y") & " г. " & DATEDIF(A2; СЕГОДНЯ(); "YM") & " мес. " & DATEDIF(A2; СЕГОДНЯ(); "MD") & " дн."

Аргумент "MD" возвращает разницу в днях, игнорируя месяцы и годы.

Практический пример: Таблица сотрудников

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

Структура таблицы:

  • Столбец A: ФИО
  • Столбец B: Дата рождения
  • Столбец C: Полный возраст (формула выше)
  • Столбец D: Возрастная группа

Формула для столбца D (Группа): Вставьте эту формулу в ячейку D2 и протяните вниз:

=ЕСЛИ(C2<18; "Несовершеннолетний"; ЕСЛИ(C2<30; "Молодой специалист"; ЕСЛИ(C2<50; "Основной состав"; "Предпенсионный/Пенсионный")))

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

Проблема с будущими датами: Функция DATEDIF вернет ошибку #ЧИСЛО!, если дата рождения больше текущей даты (например, опечатка в годе). Оберните формулу в проверку: =ЕСЛИ(A2>СЕГОДНЯ(); "Ошибка даты"; DATEDIF(A2; СЕГОДНЯ(); "Y"))

Частые ошибки и их решение

Даже простые формулы могут давать сбои из-за неверного формата данных.

  1. Формула возвращает #ЗНАЧ!

    • Причина: Дата в ячейке записана как текст (например, "12 января 1990" или "12.01.90" с неправильными разделителями).
    • Решение: Выделите столбец с датами → вкладка ДанныеТекст по столбцам → Далее → Далее → Выберите формат Дата (ДМГ) → Готово.
  2. Возраст считается неверно (на год больше/меньше)

    • Причина: Используется простое вычитание годов (ГОД(СЕГОДНЯ()) - ГОД(A2)). Этот метод не учитывает, был ли день рождения в этом году уже или нет.
    • Решение: Всегда используйте DATEDIF.
  3. Ячейка показывает #####

    • Причина: Столбец слишком узок для отображения даты.
    • Решение: Дважды кликните на границу заголовка столбца, чтобы расширить его автоматически.

FAQ

Можно ли зафиксировать дату, чтобы она не менялась завтра? Да. Не используйте формулу. Нажмите Ctrl + ; прямо в ячейке. Вставится статическое значение текущей даты.

Как посчитать количество дней между двумя датами? Просто вычтите одну ячейку из другой: =B2-A2. Убедитесь, что формат результата установлен как Общий или Числовой, иначе Excel попытается отформатировать результат снова как дату.

Работает ли DATEDIF в русской версии Excel? Да, функция работает во всех версиях (русской и английской), но аргументы ("Y", "M", "D") всегда пишутся латиницей в кавычках.