Как посчитать стаж работы в Excel: формулы, примеры и лайфхаки

Требуется рассчитать трудовой стаж в Microsoft Excel или Google Таблицах, но стандартные функции выдают ошибки или не учитывают нюансы? Эта проблема знакома кадровикам, бухгалтерам и HR-специалистам. Вручную считать годы, месяцы и дни — не вариант: легко ошибиться, особенно если стаж прерывался или включает неполные периоды.

В этой статье вы найдете 5 проверенных способов расчета стажа — от простейшей формулы DATEDIF до автоматизированных таблиц с учетом выходных, праздников и "грязных" данных (например, когда дата уволнения не указана). Мы разберем типичные ошибки, покажем, как оформить результат в удобном формате (например, "2 года 5 месяцев 14 дней"), и дадим готовые шаблоны для скачивания.

Особое внимание уделим скрытым ловушкам Excel: почему функция DATEDIF может врать на 1 день и как обойти ограничение на отрицательные даты. В конце — FAQ с ответами на частые вопросы, включая расчет стажа для воинской службы или декретного отпуска.

1. Базовый расчет стажа: функция DATEDIF

Функция DATEDIF (от англ. Date Difference) — основной инструмент для вычисления разницы между двумя датами. Она скрыта в списке функций Excel, но работает во всех версиях, включая Excel 365 и Google Таблицы.

Синтаксис:

=DATEDIF(дата_начала; дата_окончания; "единица_измерения")

Где единица_измерения может принимать значения:

  • 📅 "Y" — полные годы между датами
  • 📆 "M" — полные месяцы (без учета годов)
  • 📇 "D" — полные дни (без учета месяцев и годов)
  • 📈 "YM" — месяцы с вычетом полных лет
  • 📉 "MD" — дни с вычетом полных месяцев и лет
  • 🔢 "YD" — дни с вычетом полных лет (игнорирует месяцы)

Пример расчета стажа с 15.03.2018 по 20.10.2023:

ФормулаРезультатПояснение
=DATEDIF("15.03.2018"; "20.10.2023"; "Y")5Полных лет
=DATEDIF("15.03.2018"; "20.10.2023"; "YM")7Месяцев сверх полных лет
=DATEDIF("15.03.2018"; "20.10.2023"; "MD")5Дней сверх полных месяцев
⚠️ Внимание: Если дата окончания раньше даты начала, DATEDIF вернет ошибку #ЧИСЛО!. Чтобы избежать этого, используйте функцию ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(DATEDIF(B2; C2; "Y"); "Некорректные даты")
📊 Какой формат стажа вам нужнее?
Только годы и месяцы
Годы, месяцы и дни
Дни в числовом виде
Другой вариант

2. Продвинутый расчет: стаж в формате "X лет Y месяцев Z дней"

Чтобы получить стаж в удобочитаемом виде (например, "3 года 2 месяца 15 дней"), соедините несколько функций DATEDIF с текстом:

=DATEDIF(B2; C2; "Y") & " года " & DATEDIF(B2; C2; "YM") & " месяца " & DATEDIF(B2; C2; "MD") & " дней"

Проблема этого метода — неправильное склонение ("1 года" вместо "1 год"). Исправляем с помощью ЕСЛИ:

=DATEDIF(B2;C2;"Y") & ЕСЛИ(DATEDIF(B2;C2;"Y")=1; " год "; ЕСЛИ(И(DATEDIF(B2;C2;"Y")>1; DATEDIF(B2;C2;"Y")<5); " года "; " лет ")) &

DATEDIF(B2;C2;"YM") & " мес. " & DATEDIF(B2;C2;"MD") & " дн."

Для Google Таблиц замените точку с запятой (;) на запятую (,).

☑️ Проверка формулы стажа

Выполнено: 0 / 4

3. Учет выходных и праздников в стаже

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

=ЧИСТРАБДНИ(дата_начала; дата_окончания; [праздники])

Где [праздники] — диапазон с датами нерабочих дней (например, A1:A10). Пример для расчета стажа в рабочих днях с 01.01.2023 по 31.12.2023 (без учета праздников):

=ЧИСТРАБДНИ("01.01.2023"; "31.12.2023")

Чтобы перевести рабочие дни в годы/месяцы, используйте приблизительное соотношение:

  • 📅 1 год ≈ 247 рабочих дней (при 5-дневной неделе)
  • 📆 1 месяц ≈ 20.6 рабочих дней
⚠️ Внимание: Функция ЧИСТРАБДНИ не учитывает переносы выходных дней. Для точного расчета в России добавьте в список праздников даты переносов (публикуются ежегодно на сайте Правительства РФ).
Как автоматизировать загрузку праздников?

Создайте отдельный лист "Праздники" и импортируйте данные через Power Query (Excel 2016+) или Apps Script (Google Таблицы). В Power Query используйте источник "Из веб" с URL официального календаря.

4. Расчет стажа с перерывами (несколькими периодами)

Если стаж прерывался (например, уход в декрет или смена работы), суммируйте периоды с помощью дополнительного столбца. Алгоритм:

  1. Создайте таблицу с датами начала и конца каждого периода.
  2. Добавьте столбец "Дни" с формулой =C2-B2 (где B2 — дата начала, C2 — дата конца).
  3. Отформатируйте столбец "Дни" как [ч]:мм:сс (правый клик → Формат ячеек → Время).
  4. Суммируйте дни с помощью =СУММ(D2:D10) и конвертируйте в годы/месяцы.

Пример таблицы:

ПериодДата началаДата концаДни
Работа в компании А01.06.201515.03.20181018
Декретный отпуск16.03.201830.09.2020924
Работа в компании Б01.10.202031.12.20231187
ИТОГО=СУММ(D2:D4)

Чтобы перевести суммарные дни в стаж, используйте:

=ЦЕЛОЕ(СУММ(D2:D4)/365) & " лет " & ЦЕЛОЕ(ОСТАТ(СУММ(D2:D4);365)/30) & " мес."

5. Автоматизация: динамический стаж с текущей датой

Чтобы стаж обновлялся автоматически, замените дату окончания на СЕГОДНЯ():

=DATEDIF(B2; СЕГОДНЯ(); "Y") & " лет "

Для Google Таблиц используйте TODAY(). Важные нюансы:

  • 🔄 Формула пересчитывается при каждом открытии файла.
  • 📅 Если дата начала в будущем (опечатка), результат будет отрицательным.
  • ⏳ Для фиксации стажа на определенную дату замените СЕГОДНЯ() на конкретную дату (например, "31.12.2023").

Пример динамического расчета с защитой от ошибок:

=ЕСЛИ(B2>СЕГОДНЯ(); "Дата начала в будущем";

DATEDIF(B2; СЕГОДНЯ(); "Y") & " лет " &

DATEDIF(B2; СЕГОДНЯ(); "YM") & " мес. " &

DATEDIF(B2; СЕГОДНЯ(); "MD") & " дн.")

6. Типичные ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с ошибками при расчете стажа. Вот самые распространенные:

ОшибкаПричинаРешение
#ЧИСЛО!Дата окончания раньше даты началаИспользуйте ЕСЛИОШИБКА или проверку ЕСЛИ(B2>C2; ...)
Неправильное склонение ("1 года")Формула не учитывает грамматикуДобавьте вложенные ЕСЛИ для склонения (см. раздел 2)
Разница на 1 деньExcel считает даты как 00:00:00Добавьте 1 день к дате окончания: DATEDIF(B2; C2+1; "D")
Отрицательный стажОпечатка в датахПроверьте формат ячеек (должен быть "Дата")
⚠️ Внимание: В Excel для Mac функция DATEDIF может возвращать неверные результаты для дат до 1900 года. Используйте альтернативу:
=ЦЕЛОЕ((C2-B2)/365) & " лет"

FAQ: Ответы на частые вопросы

Как посчитать стаж, если дата уволнения не указана (сотрудник еще работает)?

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

=DATEDIF(дата_приема; СЕГОДНЯ(); "Y")

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

Можно ли посчитать стаж с учетом воинской службы?

Да. Создайте отдельную таблицу с периодами службы (дата начала и конца) и суммируйте их с основным стажем:

  1. Рассчитайте стаж по основному месту работы.
  2. Рассчитайте дни службы (например, с 10.11.2010 по 09.11.2012).
  3. Сложите результаты, конвертировав дни в годы/месяцы.

Формула для конвертации дней в стаж:

=ЦЕЛОЕ(сумма_дней/365) & " лет " & ЦЕЛОЕ(ОСТАТ(сумма_дней;365)/30) & " мес."
Почему Excel показывает стаж на 1 день меньше, чем должен быть?

Это связано с тем, что Excel считает разницу между датами как разницу между 00:00:00 даты начала и 00:00:00 даты окончания. Чтобы исправить:

  • Добавьте 1 день к дате окончания: =DATEDIF(B2; C2+1; "D").
  • Или используйте формулу: =C2-B2 и отформатируйте ячейку как "Числовой" (результат в днях).
Как посчитать стаж для нескольких сотрудников одновременно?

Используйте прогрессивную таблицу:

  1. Создайте столбцы: ФИО | Дата приема | Дата увольнения | Стаж (лет) | Стаж (месяцев) | Стаж (дней).
  2. В ячейку Стаж (лет) введите: =DATEDIF(B2; C2; "Y").
  3. Протяните формулу вниз для всех сотрудников.
  4. Для динамического обновления замените C2 на ЕСЛИ(C2=""; СЕГОДНЯ(); C2).

Готовый шаблон такой таблицы можно скачать здесь.

Как экспортировать расчет стажа в Word или PDF?

В Excel:

  1. Выделите таблицу с расчетом стажа.
  2. Нажмите Файл → Экспорт → Создать PDF/XPS.
  3. Выберите опцию "Оптимизировать для стандарта PDF/A" для сохранения форматирования.

В Google Таблицах:

  1. Нажмите Файл → Скачать → PDF-документ (.pdf).
  2. В настройках экспорта отметьте "Текущий лист" и "Сетка".