Мастер работы с датами в Excel: от автообновления до расчета стажа
Чтобы получить текущую дату в Excel, используйте функцию =СЕГОДНЯ(), а для вычисления возраста по дате рождения — комбинацию =DATEDIF(дата_рождения; СЕГОДНЯ(); "Y"). Эти две формулы решают 90% задач по работе со временем: от автоматических штампов в отчетах до расчета стажа сотрудников. Ниже приведены подробные инструкции, готовые шаблоны формул и разбор частых ошибок, которые мешают корректным вычислениям.
Главное правило: Функции СЕГОДНЯ() и ТЕПЕРЬ() являются волатильными. Их значение обновляется при каждом открытии файла или пересчете листа. Если вам нужна статичная дата (которая не изменится завтра), используйте горячие клавиши Ctrl + ; (для даты) или Ctrl + Shift + ; (для времени).
Автоматическое получение текущей даты и времени
В зависимости от задачи, вам может потребоваться только число, только время или полная метка.
Основные функции
| Задача | Формула | Описание |
|---|---|---|
| Только дата | =СЕГОДНЯ() | Возвращает текущую дату (например, 13.04.2026). Время обнуляется. |
| Дата и время | =ТЕПЕРЬ() | Возвращает текущие дату и время с точностью до секунды. |
| Статичная дата | Ctrl + ; | Вставляет текущую дату как фиксированное значение (не формулу). |
Настройка отображения
Часто после ввода формулы ячейка показывает набор цифр (например, 45395). Это внутренний формат хранения дат в Excel. Чтобы исправить это:
- Выделите ячейку с формулой.
- Нажмите
Ctrl+1(или правой кнопкой мыши → Формат ячеек). - Выберите категорию Дата или Время и нужный шаблон (например,
ДД.ММ.ГГГГ ЧЧ:ММ).
Лайфхак для заголовков: Если вы создаете шаблон отчета, впишите в ячейку заголовка текст "Отчет от: " & ТЕКСТ(СЕГОДНЯ(); "ДД.ММ.ГГГГ"). При каждом открытии файла дата будет подтягиваться автоматически в читаемом виде.
Расчет возраста и стажа по дате рождения
Самый надежный способ рассчитать возраст — использовать скрытую, но официально поддерживаемую функцию 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"))
Частые ошибки и их решение
Даже простые формулы могут давать сбои из-за неверного формата данных.
-
Формула возвращает
#ЗНАЧ!- Причина: Дата в ячейке записана как текст (например, "12 января 1990" или "12.01.90" с неправильными разделителями).
- Решение: Выделите столбец с датами → вкладка Данные → Текст по столбцам → Далее → Далее → Выберите формат Дата (ДМГ) → Готово.
-
Возраст считается неверно (на год больше/меньше)
- Причина: Используется простое вычитание годов
(ГОД(СЕГОДНЯ()) - ГОД(A2)). Этот метод не учитывает, был ли день рождения в этом году уже или нет. - Решение: Всегда используйте
DATEDIF.
- Причина: Используется простое вычитание годов
-
Ячейка показывает
#####- Причина: Столбец слишком узок для отображения даты.
- Решение: Дважды кликните на границу заголовка столбца, чтобы расширить его автоматически.
FAQ
Можно ли зафиксировать дату, чтобы она не менялась завтра?
Да. Не используйте формулу. Нажмите Ctrl + ; прямо в ячейке. Вставится статическое значение текущей даты.
Как посчитать количество дней между двумя датами?
Просто вычтите одну ячейку из другой: =B2-A2. Убедитесь, что формат результата установлен как Общий или Числовой, иначе Excel попытается отформатировать результат снова как дату.
Работает ли DATEDIF в русской версии Excel? Да, функция работает во всех версиях (русской и английской), но аргументы ("Y", "M", "D") всегда пишутся латиницей в кавычках.