Расчет трудового стажа в Excel: готовые формулы и примеры
Чтобы быстро и точно посчитать стаж работы в Excel, используйте скрытую функцию DATEDIF. Она автоматически вычисляет разницу между двумя датами, выдавая результат в полных годах, месяцах или днях. Это идеальный инструмент для кадровых отчетов и расчета отпусков без ручных подсчетов.
Почему функция DATEDIF — лучшее решение
В отличие от простого вычитания дат (которое дает только количество дней), функция DATEDIF позволяет гибко настраивать единицы измерения. Она игнорирует високосные годы и разное количество дней в месяцах, следуя календарной логике.
Функция DATEDIF не отображается в списке подсказок Excel при вводе, но работает корректно во всех версиях программы. Просто вводите её название вручную.
Базовые формулы для разных единиц времени
Предположим, что в ячейке A2 указана дата приема на работу, а в B2 — дата увольнения (или текущая дата).
1. Полные годы
Чтобы узнать количество полных отработанных лет:
=DATEDIF(A2; B2; "Y")
Аргумент "Y" (Year) возвращает целое число лет.
2. Оставшиеся месяцы
Чтобы получить количество полных месяцев после вычета лет:
=DATEDIF(A2; B2; "YM")
Аргумент "YM" игнорирует годы и считает разницу только в месяцах.
3. Оставшиеся дни
Для подсчета дней, оставшихся после вычета полных лет и месяцев:
=DATEDIF(A2; B2; "MD")
Аргумент "MD" игнорирует годы и месяцы, показывая остаток дней.
Для расчета стажа действующего сотрудника вместо даты увольнения используйте функцию TODAY(). Формула будет выглядеть так: =DATEDIF(A2; TODAY(); "Y"). Стаж будет обновляться автоматически каждый день при открытии файла.
Единая формула для красивого вывода результата
Вместо того чтобы разбивать расчет на три разные ячейки, можно объединить всё в одну формулу для получения строки вида "5 лет, 3 мес., 12 дн.":
=DATEDIF(A2; B2; "Y") & " лет, " &
DATEDIF(A2; B2; "YM") & " мес., " &
DATEDIF(A2; B2; "MD") & " дн."
Эта конструкция последовательно вычисляет каждую величину и соединяет их текстовыми разделителями.
Расчет суммарного стажа по нескольким местам работы
Если у сотрудника была прерывистая трудовая деятельность, простой сложения периодов через DATEDIF может дать ошибку из-за разной длины месяцев. Надежнее всего сначала перевести все периоды в дни, сложить их, а затем конвертировать обратно.
| Период работы | Дата начала | Дата конца | Дней отработано |
|---|---|---|---|
| Место 1 | 01.03.2015 | 10.07.2018 | =C2-B2 |
| Место 2 | 15.09.2018 | 20.04.2024 | =C3-B3 |
| Итого дней | =СУММ(D2:D3) |
После получения общей суммы дней (допустим, она в ячейке D4), рассчитайте итоговый стаж от условной нулевой даты:
=DATEDIF("01.01.1900"; "01.01.1900"+D4; "Y") & " лет, " &
DATEDIF("01.01.1900"; "01.01.1900"+D4; "YM") & " мес., " &
DATEDIF("01.01.1900"; "01.01.1900"+D4; "MD") & " дн."
Здесь мы прибавляем общее количество дней к базовой дате, а затем считаем разницу между ними.
Частые ошибки и нюансы
- Ошибка #ЧИСЛО!: Возникает, если дата окончания раньше даты начала. Проверьте порядок ячеек.
- Текстовый формат дат: Если даты введены как текст (например, выровнены по левому краю), формула не сработает. Преобразуйте их в формат "Дата".
- Разделители аргументов: В русской версии Excel аргументы разделяются точкой с запятой (
;), в английской — запятой (,).
Пример таблицы для отдела кадров
Вы можете создать готовый шаблон для массового расчета:
| Сотрудник | Дата приема | Дата увольнения | Стаж работы |
|---|---|---|---|
| Иванов А.А. | 10.01.2018 | 15.05.2026 | =DATEDIF(B2;C2;"Y")&" л. "&DATEDIF(B2;C2;"YM")&" м." |
| Петрова Е.С. | 05.06.2020 | СЕГОДНЯ | =DATEDIF(B3;СЕГОДНЯ();"Y")&" л. "&DATEDIF(B3;СЕГОДНЯ();"YM")&" м." |
Результат в первой строке: 8 л. 4 м. Результат во второй строке будет меняться ежедневно.
FAQ
Можно ли использовать эту формулу для расчета больничных?
Да, принцип тот же, но для оплаты больничных часто требуется точное количество дней. В таком случае используйте простое вычитание: =Дата_конца - Дата_начала + 1.
Почему формула показывает 0 месяцев, хотя прошло полгода?
Проверьте аргумент функции. Если вы используете "M" (полные месяцы за весь период), то результат будет общим числом месяцев. Для получения остатка после лет нужен аргумент "YM".
Как округлить стаж до лет?
Используйте стандартную формулу с аргументом "Y". Она автоматически отбрасывает дробную часть, оставляя только полные годы.