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

Почему Excel — лучший инструмент для расчета стажа

Расчет трудового стажа — задача, с которой регулярно сталкиваются кадровики, бухгалтеры и сотрудники отдела персонала. Вручную высчитывать разницу между датами приема и увольнения не только долго, но и чревато ошибками, особенно если речь идет о сотнях сотрудников. Microsoft Excel автоматизирует этот процесс, позволяя обрабатывать данные за секунды с минимальным риском погрешностей.

Главное преимущество Excel перед специализированными программами — гибкость. Здесь можно учитывать не только календарные дни, но и рабочие дни (исключая выходные), праздничные дни (по ТК РФ), а также неполные периоды (например, если сотрудник отработал 15 дней из месяца). Более того, результаты легко интегрировать в отчеты, таблицы зарплаты или графики отпусков.

В этой статье вы найдете:

  • 🔹 Базовые формулы для расчета разницы между датами (в днях, месяцах, годах).
  • 🔹 Учет рабочих дней с исключением выходных и праздников.
  • 🔹 Способы обработки неполных периодов (например, 2 недели из месяца).
  • 🔹 Автоматизация для массового расчета стажа по большому списку сотрудников.
📊 Как часто вам приходится рассчитывать стаж сотрудников?
Ежедневно
Раз в неделю
Раз в месяц
Реже
Никогда

Базовый расчет: разница между датами в Excel

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

1. Разница в днях

Формула:

=ДАТА_УВОЛЬНЕНИЯ - ДАТА_ПРИЕМА

Пример: если сотрудник принят 01.06.2020 и уволен 15.05.2026, формула вернет 1445 дней. Этот метод подходит для точного подсчета, но не учитывает рабочие/выходные дни.

2. Разница в месяцах или годах

Для преобразования дней в месяцы или годы используйте функции РАЗНДАТ (англ. DATEDIF). Эта функция скрытая, но работает во всех версиях Excel:

=РАЗНДАТ(ДАТА_ПРИЕМА; ДАТА_УВОЛЬНЕНИЯ; "M")  

=РАЗНДАТ(ДАТА_ПРИЕМА; ДАТА_УВОЛЬНЕНИЯ; "Y")

Пример: для тех же дат 01.06.2020 и 15.05.2026 функция вернет 47 месяцев или 3 года (с округлением в меньшую сторону).

3. Разделение на годы, месяцы и дни

Чтобы получить детализированный результат (например, "3 года, 11 месяцев, 14 дней"), комбинируйте РАЗНДАТ с разными параметрами:

=РАЗНДАТ(A2;B2;"Y") & " лет, " & РАЗНДАТ(A2;B2;"YM") & " мес., " & РАЗНДАТ(A2;B2;"MD") & " дн."

Где A2 — дата приема, B2 — дата увольнения.

Почему РАЗНДАТ не документирована?

Функция РАЗНДАТ осталась в Excel для совместимости с Lotus 1-2-3 — популярной программой 1980-х. Microsoft никогда официально не анонсировала ее в справке, но она работает во всех версиях, включая Excel 365 и Excel 2026.

Учет рабочих дней: исключаем выходные и праздники

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

1. Функция ЧИСТРАБДНИ (NETWORKDAYS)

Синтаксис:

=ЧИСТРАБДНИ(ДАТА_ПРИЕМА; ДАТА_УВОЛЬНЕНИЯ; [ПРАЗДНИКИ])

Пример: чтобы посчитать рабочие дни между 01.01.2026 и 31.01.2026 (исключая субботы, воскресенья и Новый год), используйте:

=ЧИСТРАБДНИ("01.01.2026"; "31.01.2026"; {"01.01.2026";"02.01.2026";"07.01.2026"})

Результат: 17 рабочих дней (в январе 2026 года при 5-дневной рабочей неделе).

2. Список праздников по ТК РФ

Чтобы автоматически учитывать все официальные праздники, создайте отдельный лист в Excel с перечнем дат. Например:

ДатаПраздник
01.01.2026Новый год
07.01.2026Рождество Христово
23.02.2026День защитника Отечества
08.03.2026Международный женский день
01.05.2026Праздник Весны и Труда

Затем ссылайтесь на этот диапазон в функции ЧИСТРАБДНИ:

=ЧИСТРАБДНИ(A2; B2; Праздники!$A$2:$A$100)

Создать столбец с датами приема|Создать столбец с датами увольнения|Подготовить список праздников на отдельном листе|Проверить формат ячеек (должен быть "Дата")|Применить функцию ЧИСТРАБДНИ-->

Обработка неполных периодов: месяцы и дни

Частая проблема при расчете стажа — неполные месяцы. Например, если сотрудник отработал с 15.03.2026 по 10.04.2026, как правильно посчитать этот период? В трудовом законодательстве принято:

  • 📅 15 дней и более в месяце округляются до полного месяца.
  • 📅 Менее 15 дней — не учитываются (или округляются в зависимости от внутренних правил компании).

В Excel это реализуется с помощью условной функции ЕСЛИ:

=ЕСЛИ(РАЗНДАТ(A2;B2;"MD")>=15; РАЗНДАТ(A2;B2;"M")+1; РАЗНДАТ(A2;B2;"M"))

Где:

  • РАЗНДАТ(A2;B2;"MD") — возвращает количество дней в неполном месяце.
  • РАЗНДАТ(A2;B2;"M") — полные месяцы.

Важно: при расчете стажа для пенсии ПФР использует другие правила — неполный месяц округляется до полного, если количество дней ≥ 30. Уточняйте требования для конкретной задачи!

Массовый расчет стажа для большого списка сотрудников

Если нужно посчитать стаж для десятков или сотен сотрудников, ручной ввод формул неэффективен. Автоматизируйте процесс:

1. Подготовка таблицы

Создайте структуру с колонками:

ФИОДата приемаДата увольненияСтаж (лет)Стаж (мес.)Стаж (дней)
Иванов И.И.01.06.202015.05.2026=РАЗНДАТ(B2;C2;"Y")=РАЗНДАТ(B2;C2;"M")=РАЗНДАТ(B2;C2;"D")
Петров П.П.10.01.201930.04.2026=РАЗНДАТ(B3;C3;"Y")=РАЗНДАТ(B3;C3;"M")=РАЗНДАТ(B3;C3;"D")

2. Копирование формул

Введите формулы в первую строку, затем:

  1. Выделите ячейки с формулами.
  2. Наведите курсор на правый нижний угол выделения (появится черный крестик).
  3. Дважды кликните или протяните вниз до последней строки.

3. Динамические диапазоны (Excel 365)

В современных версиях Excel используйте динамические массивы, чтобы формулы автоматически применялись ко всем строкам:

=РАЗНДАТ(B2:B100; C2:C100; "Y")  

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

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

⚠️ Внимание: Если даты введены как текст (например, "01.01.2026" вместо формата Дата), Excel вернет ошибку #ЗНАЧ!. Проверьте формат ячейки: выделите столбец → Формат ячеек → Дата.

Ошибка 1: Неправильный порядок дат

Функция РАЗНДАТ вернет ошибку, если дата увольнения раньше даты приема. Используйте ЕСЛИОШИБКА для защиты:

=ЕСЛИОШИБКА(РАЗНДАТ(A2;B2;"Y"); "Дата увольнения раньше даты приема")

Ошибка 2: Игнорирование високосных годов

Excel автоматически учитывает високосные годы (например, 2026), но если вы вручную вычитаете дни, может возникнуть погрешность. Всегда используйте РАЗНДАТ или вычитание дат (=B2-A2).

Ошибка 3: Праздники в выходные дни

Функция ЧИСТРАБДНИ не учитывает праздники, выпадающие на субботу или воскресенье (например, Новый год 2026 был в понедельник, а Рождество — в воскресенье). Чтобы исключить их, добавьте в список праздников все календарные даты, даже если они приходятся на выходные.

Как проверить формат даты?

Выделите ячейку → посмотрите на строку формул. Если дата отображается как 45341 (числовой формат), а не 01.01.2026, измените формат на Дата.

Продвинутые техники: Power Query и VBA

Для сложных задач (например, расчет стажа по нескольким периодам работы или интеграция с 1С) стандартных функций Excel может быть недостаточно. Рассмотрим альтернативы:

1. Power Query (Excel 2016+)

Power Query позволяет импортировать данные из внешних источников (например, из или SQL) и автоматизировать расчеты:

  1. Перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. Загрузите таблицу с датами приема/увольнения.
  3. Добавьте столбец с формулой (например, = Date.From([Дата увольнения]) - Date.From([Дата приема])).

2. VBA-скрипт для массового расчета

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

Sub CalculateSeniority()

Dim ws As Worksheet

Dim lastRow As Long

Set ws = ThisWorkbook.Sheets("Стаж")

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

For i = 2 To lastRow

ws.Cells(i, 4).Value = Application.WorksheetFunction.DatedIf( _

ws.Cells(i, 2).Value, ws.Cells(i, 3).Value, "Y")

Next i

End Sub

Этот скрипт пройдет по всем строкам листа "Стаж" и заполнит 4-й столбец количеством лет стажа.

⚠️ Внимание: Перед запуском VBA-макросов сохраните файл с расширением .xlsm (с поддержкой макросов) и включите их выполнение в Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов.

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

Как посчитать стаж, если сотрудник работает по сей день?

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

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

Формула будет автоматически обновляться при каждом открытии файла.

Можно ли учитывать отпуска без сохранения зарплаты?

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

=ЧИСТРАБДНИ(A2; B2; Праздники!$A$2:$A$100) - D2

Где D2 — количество дней отпуска без сохранения зарплаты.

Как округлить стаж до полных месяцев для отчета в ПФР?

ПФР требует округлять неполный месяц до полного, если отработано ≥ 15 дней. Используйте:

=ЕСЛИ(РАЗНДАТ(A2;B2;"MD")>=15; РАЗНДАТ(A2;B2;"M")+1; РАЗНДАТ(A2;B2;"M"))
Как посчитать стаж по нескольким периодам работы?

Сложите результаты РАЗНДАТ для каждого периода:

=РАЗНДАТ(A2;B2;"D") + РАЗНДАТ(C2;D2;"D") + РАЗНДАТ(E2;F2;"D")

Где A2:B2, C2:D2, E2:F2 — пары дат начала и конца каждого периода.

Почему РАЗНДАТ возвращает #ИМЯ?

Ошибка #ИМЯ? означает, что Excel не распознает функцию. Возможные причины:

  • Опечатка в названии (проверьте регистр: РАЗНДАТ, а не разндат).
  • Английская версия Excel — используйте DATEDIF.
  • Ячейки отформатированы как текст (измените формат на Общий или Дата).