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

При составлении графика отпусков в Microsoft Excel без формул приходится вручную считать дни, учитывать выходные и проверять пересечения — это занимает часы и чревато ошибками. Автоматизация через функции =РАБДЕНЬ(), =ЕСЛИОШИБКА() и условное форматирование сокращает время на 80% и исключает конфликты дат. В этой инструкции разберём по шагам, как построить динамический график с учётом производственного календаря, остатков отпусков и запрещённых периодов (например, во время инвентаризации).

Ключевая проблема ручного графика — невидимые накладки: когда два сотрудника уходят в отпуск на одни и те же даты, а вы узнаёте об этом только при утверждении. Формулы решают это заранее: они подсвечивают конфликты красным и блокируют некорректные даты. Мы покажем, как связать данные о сотрудниках с календарём, чтобы при изменении даты начала отпуска автоматически пересчитывались конечная дата, количество дней и остаток по сотруднику.

1. Подготовка структуры таблицы: обязательные столбцы

Перед вводом формул нужно создать «скелет» графика. Минимальный набор столбцов для корректных расчётов:

  • 📌 ФИО сотрудника — связь с личной карточкой (используйте выпадающий список, чтобы избежать опечаток).
  • 📅 Дата начала отпуска — формат «ДД.ММ.ГГГГ» (не текст!).
  • 🔢 Продолжительность (дней) — целое число, без учёта выходных.
  • 📅 Дата окончания — рассчитывается автоматически.
  • 🔴 Статус — «Утверждено», «На согласовании», «Отклонено» (для фильтрации).
  • ⚠️ Примечание — для обоснования отклонения или особенностей (например, «отпуск за свой счёт»).

Дополнительно рекомендуем добавить:

  • 📊 Остаток дней на начало года — для контроля перерасхода.
  • 🔄 Перенос с прошлого года — если у сотрудника остались неиспользованные дни.
  • 🏢 Подразделение — для группировки по отделам.

Пример структуры:

ФИОДата началаДнейДата окончанияОстатокСтатус
Иванов И.И.10.07.202614=РАБДЕНЬ(B2; C2)28На согласовании
Петрова А.С.15.07.202621=РАБДЕНЬ(B3; C3)20Утверждено

2. Формулы для расчёта даты окончания отпуска

Основная формула — =РАБДЕНЬ(дата_начала; количество_дней; [праздники]). Она автоматически пропускает выходные (субботу и воскресенье) и указанные праздничные даты. Например, для сотрудника с отпуском с 10 июля на 14 дней:

=РАБДЕНЬ(B2; C2; Праздники!$A$2:$A$15)

Где Праздники!$A$2:$A$15 — диапазон с датами официальных праздников (например, 1–8 января, 9 мая и т.д.). Чтобы формула работала корректно:

  • 📅 Праздничные даты должны быть в формате «ДД.ММ.ГГГГ».
  • 🔄 Обновляйте список праздников ежегодно (в 2026 году добавлены переносы с 4 и 5 января на 6 и 7 мая).
  • ⚠️ Не включайте в список субботы и воскресенья — РАБДЕНЬ игнорирует их автоматически.
Как экспортировать производственный календарь в Excel

1. Скачайте календарь с сайта Правительства РФ (раздел «Производственный календарь»).

2. Скопируйте столбец с датами праздников в отдельный лист Excel.

3. Удалите все даты, кроме праздничных (оставьте только красные дни календаря).

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

=РАБДЕНЬ(B2; C2; Праздники!$A$2:$A$15) + ЕСЛИ(ИЛИ(ДЕНЬНЕД(РАБДЕНЬ(B2; C2; Праздники!$A$2:$A$15); 2)>5); 1; 0)

3. Проверка на пересечение отпусков

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

=ЕСЛИ(СЧЁТЕСЛИМН($B$2:$B$100; ">="&$B2; $B$2:$B$100; "<="&D2; $C$2:$C$100; ">="&$C2) > 1; "Конфликт!"; "")

Как это работает:

  • 🔍 СЧЁТЕСЛИМН считает количество отпусков, которые пересекаются с текущим по датам.
  • ⚠️ Если значение > 1, значит есть накладка (текущий отпуск + ещё хотя бы один).
  • 🎨 Добавляем условное форматирование для столбца с этой формулой: если ячейка содержит «Конфликт!», заливаем её красным.
⚠️ Внимание: Формула проверяет конфликты только в рамках одного листа. Если у вас несколько отделов на разных листах, используйте 3D-ссылки (например, Лист1:Лист3!$B$2:$B$100).

4. Автоматический контроль остатков отпусков

Чтобы не допустить превышения лимита отпускных дней, добавьте столбец «Остаток» и свяжите его с личной карточкой сотрудника. Формула для расчёта остатка после утверждения отпуска:

=ЕСЛИ(E2="Утверждено"; VLOOKUP(A2; Остатки!$A$2:$B$100; 2; ЛОЖЬ) - C2; VLOOKUP(A2; Остатки!$A$2:$B$100; 2; ЛОЖЬ))

Где:

  • Остатки! — лист с данными о накопленных днях отпуска по каждому сотруднику.
  • VLOOKUP ищет ФИО сотрудника в первом столбце таблицы остатков и возвращает значение из второго столбца (количество дней).
  • 🔄 Если статус «Утверждено», из остатка вычитаются дни текущего отпуска.

Для наглядности добавьте условное форматирование:

  • 🟢 Зелёный — остаток ≥ 14 дней.
  • 🟡 Жёлтый — остаток от 7 до 13 дней.
  • 🔴 Красный — остаток ≤ 6 дней или отрицательный (перерасход).

5. Динамический календарь отпусков на год

Визуализировать график поможет календарь, где каждый день отмечен цветом в зависимости от статуса отпуска. Создайте отдельный лист с календарём на 12 месяцев и используйте формулу массива для подсветки:

=ЕСЛИОШИБКА(ИНДЕКС(График!$B$2:$D$100; ПОИСКПОЗ($A2; График!$A$2:$A$100; 0); 1); "") <= [текущая_дата] <= ЕСЛИОШИБКА(ИНДЕКС(График!$B$2:$D$100; ПОИСКПОЗ($A2; График!$A$2:$A$100; 0); 3); ""); "Отпуск"; "")

Как это работает:

  1. Создайте таблицу с датами на год (столбец A) и днями недели (столбец B).
  2. В ячейку C2 вставьте формулу выше и растяните её на весь календарь.
  3. Добавьте условное форматирование: если ячейка содержит «Отпуск», залейте её синим.

Для удобства добавьте выпадающий список с ФИО сотрудников — при выборе имени календарь будет подсвечивать только его отпуска.

📋 Все даты в формате ДД.ММ.ГГГГ

🔍 Нет пересечений отпусков в одном отделе

📊 Остатки дней посчитаны верно (без отрицательных значений)

🖨️ Условное форматирование работает на печати (включите «Печать → Печатать цвета»)

-->

6. Защита данных и права доступа

Чтобы избежать случайных изменений в формулах:

  • 🔒 Защитите лист: Рецензирование → Защитить лист (разрешите редактирование только ячеек с датами и статусами).
  • 👥 Настройте права доступа: Файл → Доступ → Предоставить доступ (например, только для HR и руководителей).
  • 📤 Сохраняйте резервные копии еженедельно (включите Файл → Сохранить как → Облачное хранилище).

Для совместной работы:

  • 🌐 Используйте Excel Online или Google Sheets — они поддерживают одновременное редактирование.
  • 📌 Добавляйте комментарии к ячейкам с формулами (правый клик → Вставить комментарий).
⚠️ Внимание: Если график ведётся в Google Sheets, замените РАБДЕНЬ на =WORKDAY (синтаксис аналогичный). Для проверки пересечений используйте =COUNTIFS вместо СЧЁТЕСЛИМН.

7. Автоматизация отчётов для руководства

Руководителям нужны сводные данные: сколько человек в отпуске по месяцам, остатки дней по отделам. Создайте отдельный лист с отчётами:

МесяцКоличество отпусковСредняя продолжительность (дней)Макс. одновременно в отпуске
Январь=СЧЁТЕСЛИ(График!$B$2:$B$100; ">="&ДАТА(2026;1;1)) - СЧЁТЕСЛИ(График!$B$2:$B$100; ">="&ДАТА(2026;2;1))=СРЗНАЧЕСЛИ(График!$B$2:$B$100; ">="&ДАТА(2026;1;1); График!$C$2:$C$100)=МАКС(ЧАСТОТА(График!$B$2:$B$100; ЕСЛИ(График!$B$2:$B$100>=ДАТА(2026;1;1); ЕСЛИ(График!$B$2:$B$100<ДАТА(2026;2;1); График!$B$2:$B$100))))
Февраль=СЧЁТЕСЛИ(График!$B$2:$B$100; ">="&ДАТА(2026;2;1)) - СЧЁТЕСЛИ(График!$B$2:$B$100; ">="&ДАТА(2026;3;1))=СРЗНАЧЕСЛИ(...)=МАКС(...)

Для визуализации добавьте гистограмму или линейную диаграмму:

  1. Выделите данные таблицы с отчётом.
  2. Перейдите на вкладку Вставка → Гистограмма.
  3. Добавьте Линию тренда, чтобы увидеть пиковые месяцы (обычно июль–август).

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

Даже с формулами в графике отпусков возникают проблемы. Рассмотрим самые частые:

  • 🗓️ Некорректный формат дат: Excel воспринимает даты как текст, если они введены через точку (например, «1.07.2026»). Исправляйте через Формат ячеек → Дата.
  • 🔄 Неучтённые переносы выходных: В 2026 году 4 и 5 января перенесены на 6 и 7 мая. Обновите список праздников!
  • 🚫 Забытые запрещённые периоды: Например, отпуска в декабре могут быть ограничены из-за закрытия отчётного периода. Добавьте столбец «Запрещённые даты» и проверку через =СЧЁТЕСЛИ(Запреты!$A$2:$A$10; B2).
  • 📉 Отрицательные остатки: Если формула остатков возвращает отрицательное значение, проверьте, не утверждены ли отпуска сверх лимита.

Для диагностики ошибок:

  • 🔍 Используйте Формулы → Зависимости формул → Влияющие ячейки, чтобы проверить, какие данные участвуют в расчёте.
  • 📌 Включите Формулы → Показать формулы (или нажмите Ctrl + `), чтобы увидеть код вместо результатов.
Как исправить #ЗНАЧ! в формуле РАБДЕНЬ

1. Проверьте, что дата начала — корректная дата (не текст).

2. Убедитесь, что количество дней — целое число (не дробь).

3. Проверьте диапазон праздников: он должен содержать только даты (без пустых ячеек или текста).

FAQ: Частые вопросы по графику отпусков в Excel

🔹 Как учитывать отпуска «за свой счёт»?

Добавьте столбец «Тип отпуска» с значениями «Оплачиваемый»/«За свой счёт». В формуле расчёта окончания используйте:

=ЕСЛИ(D2="За свой счёт"; B2 + C2; РАБДЕНЬ(B2; C2; Праздники!$A$2:$A$15))

Где D2 — столбец с типом отпуска.

🔹 Можно ли сделать график на 2 года вперёд?

Да, но:

  1. Создайте отдельные листы для каждого года.
  2. В списке праздников укажите даты за оба года.
  3. Используйте 3D-ссылки для сводных отчётов (например, =СЧЁТЕСЛИ(2026:2026!$B$2:$B$100; ">="&ДАТА(2026;1;1))).
🔹 Как заблокировать изменение формул, но разрешить редактирование дат?

Шаги:

  1. Выделите все ячейки листа (Ctrl + A).
  2. Снимите защиту: Главная → Формат → Защитить ячейку (снять галочку).
  3. Выделите только ячейки с формулами и поставьте галочку «Защитить ячейку».
  4. Защитите лист: Рецензирование → Защитить лист (установите пароль).
🔹 Как экспортировать график в Word для приказа?

Способы:

  • 📋 Копирование как таблицы: Выделите диапазон → Копировать → Вставьте в Word через Специальная вставка → Таблица Excel.
  • 🖼️ Экспорт как изображения: Выделите диапазон → Копировать → Картинка → Вставьте в Word.
  • 📄 Сохранение в PDF: Файл → Экспорт → PDF, затем конвертируйте PDF в Word (например, через Adobe Acrobat).

Для приказа достаточно скопировать столбцы «ФИО», «Дата начала», «Дней» и «Статус».

🔹 Почему формула РАБДЕНЬ не учитывает переносы выходных?

РАБДЕНЬ игнорирует переносы по умолчанию. Чтобы их учесть:

  1. Добавьте перенесённые дни в список праздников (например, 4 и 5 января 2026 года — рабочие, но если они перенесены, укажите их как праздники).
  2. Используйте альтернативную формулу с =ЕСЛИ для ручной корректировки:
=ЕСЛИ(ИЛИ(B2=ДАТА(2026;1;4); B2=ДАТА(2026;1;5)); B2 + C2 + 1; РАБДЕНЬ(B2; C2; Праздники!$A$2:$A$15))