Расчет дат, возраста и стажа в Excel: функции и формулы
Чтобы определить дату и рассчитать возраст или стаж в Excel, используйте функции СЕГОДНЯ() для фиксации текущего дня и скрытую РАЗНДАТ() для точного подсчета полных лет, месяцев и дней.
Оглавление
Получение текущей даты
Для работы с актуальным календарным днем в Excel применяются две базовые функции. Они автоматически обновляются при каждом открытии файла или пересчете таблицы:
=СЕГОДНЯ()— возвращает только текущую дату.=ТДАТА()— возвращает текущую дату и точное время.
Если вам нужно зафиксировать дату статично, чтобы она не менялась при пересчете, используйте сочетание клавиш Ctrl + ; (точка с запятой) в выбранной ячейке.
Расчет точного возраста и стажа
Самый надежный способ получить полные годы, месяцы или дни между двумя датами — функция РАЗНДАТ (в английской версии Excel — DATEDIF). Она является скрытой и не появляется в стандартных подсказках, но полностью поддерживается программой.
Убедитесь, что начальная дата строго раньше конечной, иначе функция вернет ошибку #ЧИСЛО!. Также проверьте, что ячейки с исходными датами имеют формат «Дата», а ячейки с результатами — «Общий» или «Число», иначе вместо текста вы увидите случайное число.
Синтаксис: =РАЗНДАТ(нач_дата; кон_дата; тип)
| Тип | Описание | Пример использования |
|---|---|---|
| "Y" | Количество полных лет | Общий возраст сотрудника, полный стаж |
| "M" | Количество полных месяцев | Стаж менее одного года |
| "D" | Количество дней | Точная разница в днях |
| "YM" | Разница в месяцах (игнорируя годы) | Для вывода формата «X лет Y месяцев» |
| "MD" | Разница в днях (игнорируя месяцы и годы) | Для вывода формата «...и Z дней» |
Примеры формул:
- Возраст в полных годах на сегодня:
=РАЗНДАТ(A2; СЕГОДНЯ(); "Y") - Стаж в формате «X лет Y мес. Z дн.»:
=РАЗНДАТ(B2; C2; "Y") & " лет " & РАЗНДАТ(B2; C2; "YM") & " мес. " & РАЗНДАТ(B2; C2; "MD") & " дн."
Альтернативные методы вычислений
Если функция РАЗНДАТ недоступна или не подходит для специфики задачи, можно использовать следующие подходы:
- Функция ДОЛЯГОДА (YEARFRAC): Возвращает долю года между датами. Удобна для бухгалтерских расчетов, где год может считаться как 360 или 365 дней.
=ЦЕЛОЕ(ДОЛЯГОДА(A2; B2; 1))— вернет целое количество полных лет. - Простое вычитание:
=(B2-A2)/365,25— дает приблизительный возраст с десятичными знаками. Менее точен, чем РАЗНДАТ, из-за погрешности на високосные годы.
Частые ошибки
- Неверный формат ячеек. Если в ячейке с результатом стоит формат «Дата», вместо «35 лет» Excel отобразит дату в 1900 году. Всегда меняйте формат результата на «Общий» или «Текстовый».
- Даты импортированы как текст. Если даты пришли из другой системы и не распознаются, используйте функцию
=ДАТАЗНАЧ()для преобразования их в числовой формат Excel перед расчетами. - Локализация функций. В русской версии Excel функция пишется как РАЗНДАТ, в английской — DATEDIF. При этом аргументы типа ("Y", "M", "D") всегда пишутся латиницей и обязательно берутся в кавычки, независимо от языка интерфейса.
FAQ
Почему функция РАЗНДАТ не находится в списке при вводе? Это нормально. Функция РАЗНДАТ является скрытой (наследие Lotus 1-2-3) и не выводится в мастер функций, но она полностью рабочая и поддерживается всеми версиями Excel.
Как посчитать стаж, если дата увольнения еще не наступила?
В качестве конечной даты используйте функцию =СЕГОДНЯ(). Если сотрудник еще работает, формула =РАЗНДАТ(A2; СЕГОДНЯ(); "Y") будет автоматически обновлять его стаж каждый день.
Можно ли использовать РАЗНДАТ для расчета стажа в месяцах, если он больше года? Да, используйте тип "M". Функция вернет общее количество полных месяцев между датами, не ограничиваясь одним годом (например, 25 месяцев вместо 2 лет и 1 месяца).