Как в Excel создать график работы с датами выхода: от простого к автоматизированному

Почему Excel — лучший инструмент для составления графиков работы

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

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

В этой статье разберём три уровня создания графиков:

  1. Ручной ввод данных (для небольших команд до 10 человек).
  2. Полуавтоматический метод с формулами (для средних коллективов 10–50 человек).
  3. Полная автоматизация с Power Query и VBA (для крупных предприятий).

Подготовка базовой структуры графика: шапка и столбцы

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

  • 📅 Календарного плана (даты, дни недели, праздники).
  • 👥 Списка сотрудников (ФИО, должности, табельные номера).
  • 📊 Самого графика (смены, выходные, отпуска).

На листе с графиком создайте шапку по образцу:

ФИО Должность 01.06.2026
Сб
02.06.2026
Вс
03.06.2026
Пн
...
Иванов П.С. Менеджер В В Д ...
Петрова А.И. Кассир Д В Н ...

Где: В — выходной, Д — дневная смена, Н — ночная смена.

Используйте условное форматирование, чтобы ячейки с выходными окрашивались в серый, а ночные смены — в тёмно-синий. Это визуально упростит анализ.

⚠️ Внимание: Не используйте merge-ячейки для объединения дат по месяцам! Это нарушит сортировку и фильтрацию. Вместо этого зафиксируйте шапку через Вид → Заморозить области.
📊 Как часто вы обновляете график работы?
Еженедельно
Ежемесячно
Ежеквартально
По мере необходимости

Автоматическое заполнение дат и дней недели

Вводить даты вручную — нерационально. В Excel есть инструменты для автозаполнения:

  1. В ячейку A1 введите первую дату графика (например, 01.06.2026).
  2. Выделите ячейку, наведите курсор на правый нижний угол (появится крестик) и протяните вправо на нужное количество дней.
  3. Чтобы отобразить дни недели, в соседней строке используйте формулу:
    =ТЕКСТ(A1; "ДДД")

    и протяните её вправо.

Для выделения выходных (субботы и воскресенья) примените условное форматирование: Формат → Условное форматирование → Создать правило → Использовать формулу.

Формула для субботы:

=ИЛИ(ДЕНЬНЕД(A1;2)=6; ДЕНЬНЕД(A1;2)=7)

Где ДЕНЬНЕД с параметром 2 возвращает номер дня недели (1 — понедельник, 7 — воскресенье).

Учёт праздничных дней и отпусков сотрудников

Праздники и отпуска — главные «ломалки» графика. Их нужно учитывать заранее, чтобы избежать недокомплекта кадров. В России праздничные дни регулируются Трудовым кодексом (ст. 112). Для автоматизации:

  1. Создайте на отдельном листе таблицу с праздничными датами (столбец A) и их названиями (столбец B).
  2. Используйте функцию ВПР, чтобы проверять, является ли дата в графике праздничной:
    =ЕСЛИНД(ВПР(A1; Праздники!A:B; 2; ЛОЖЬ); "П"; "")

    Где Праздники! — имя листа с перечнем праздников.

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

=ЕСЛИ(И(A1>=ДАТАЗНАЧ("2026-06-10"); A1<=ДАТАЗНАЧ("2026-06-23")); "О"; "")

⚠️ Внимание: Если в вашей компании практикуются «плавающие» праздники (перенос выходных), обновляйте таблицу праздников ежегодно! Например, в 2026 году 23 февраля выпало на пятницу, поэтому выходной перенесли на 24 февраля.
Как учесть региональные праздники?

Добавьте на лист "Праздники" отдельный столбец "Регион" и используйте функцию ФИЛЬТР или ПОИСКПОЗ с учётом фильтра по региону.

Формулы для расчёта рабочих часов и переработок

Чтобы график не только показывал смены, но и помогал контролировать соблюдение трудового законодательства, добавьте расчёты:

  • 🕒 Норма часов в месяц (по ТК РФ — 160 часов при 40-часовой неделе).
  • ⏱️ Фактически отработанные часы (с учётом смен).
  • ⚠️ Переработки/недоработки (разница между нормой и фактом).

Пример формулы для дневной смены (8 часов):

=СЧЁТЕСЛИ(БлокСмен; "Д") * 8

Где БлокСмен — диапазон ячеек с обозначениями смен для конкретного сотрудника.

Для ночной смены (7 часов по ТК РФ):

=СЧЁТЕСЛИ(БлокСмен; "Н") * 7

Критическая ошибка большинства графиков: не учитываются сокращённые предпраздничные дни (на 1 час меньше). Добавьте проверку:

=ЕСЛИ(ИЛИ(A1=ДАТАЗНАЧ("2026-06-11"); A1=ДАТАЗНАЧ("2026-11-03")); 7; 8)

Сверка с производственным календарём|Проверка отпусков сотрудников|Контроль нормы рабочих часов|Учёт ночных смен (сокращение на 1 час)|Визуальная проверка выходных-->

Визуализация графика: диаграммы и сводные таблицы

Таблица с датами и буквами — это хорошо, но визуальный анализ упрощает диаграмма Ганта или тепловая карта. Для диаграммы Ганта:

  1. Добавьте столбец с длительностью смены (например, 8 для дневной).
  2. Выделите данные и перейдите на вкладку Вставка → Вставить диаграмму с областями.
  3. Настройте оси: по вертикали — ФИО сотрудников, по горизонтали — даты.

Для тепловой карты используйте условное форматирование с цветовыми шкалами:

  • 🟢 Зелёный — нормальная нагрузка (8 часов/день).
  • 🟡 Жёлтый — переработка (9–12 часов).
  • 🔴 Красный — критическая переработка (свыше 12 часов).

Сводная таблица поможет ответить на вопросы: «Кто из сотрудников чаще работает в ночную смену?», «Сколько выходных выпало на праздники?».

Для её создания выделите исходные данные и нажмите Вставка → Сводная таблица.

Автоматизация с Power Query и VBA (для продвинутых)

Если график составляется для 50+ сотрудников, ручная работа станет кошмаром. Power Query и VBA решают проблему:

  • 🔄 Power Query — импорт данных из 1С, Google Календаря или корпоративных систем.
  • 🤖 VBA — автоматическое распределение смен по алгоритму (например, «2 через 2»).

Пример кода VBA для автозаполнения графика «день/ночь»:

Sub FillShiftPattern()

Dim ws As Worksheet

Dim lastRow As Long, lastCol As Long

Dim i As Long, j As Long

Dim pattern As Variant

Set ws = ThisWorkbook.Sheets("График")

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

lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

pattern = Array("Д", "Д", "Н", "Н", "В", "В")

For i = 2 To lastRow

For j = 3 To lastCol

ws.Cells(i, j).Value = pattern((j - 3) Mod 6)

Next j

Next i

End Sub

Этот скрипт заполняет график по шаблону «2 дня — 2 ночи — 2 выходных». Чтобы запустить его, нажмите Alt + F11, вставьте код в модуль и выполните через F5.

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

Экспорт и печать графика: советы по оформлению

Готовый график нужно довести до вида, пригодного для печати или отправки сотрудникам. Следуйте чек-листу:

  • 🖨️ Разметка страницы: установите поля не менее 1 см, ориентацию Альбомная для широких таблиц.
  • 📏 Масштаб: в Вид → Масштаб» выберите «По размеру страницы», чтобы график поместился на 1 лист.
  • 🔍 Удобочитаемость: увеличьте шрифт для ФИО и дат до 10–12 пт, жирным выделите шапку.

Для экспорта в PDF используйте Файл → Экспорт → Создать PDF/XPS. Если нужно отправить график по почте, предварительно:

  1. Скройте вспомогательные листы (правый клик по ярлыку листа → Скрыть).
  2. Защитите лист от изменений: Рецензирование → Защитить лист (установите пароль).

Если график нужен в Google Sheets, экспортируйте файл в формат .csv и импортируйте в Гугл Таблицы. Обратите внимание: некоторые функции Excel (например, ДЕНЬНЕД) в Google Sheets могут требовать корректировки.

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

Как учитывать смены по 12 часов (сутки через трое)?

Создайте отдельный столбец с типом смены (например, С12 для 12-часовой). В формуле расчёта часов используйте умножение на 12 вместо 8. Для визуализации применяйте условное форматирование с другим цветом (например, оранжевым).

Пример формулы:

=СЧЁТЕСЛИ(БлокСмен; "С12")  12 + СЧЁТЕСЛИ(БлокСмен; "Д")  8

Можно ли сделать график на год вперёд с автоматическим переносом выходных?

Да, но потребуется VBA-скрипт, который будет сверяться с производственным календарём на следующий год. Готовое решение можно найти на форумах по VBA или заказать у фрилансеров.

Альтернатива — использовать Power Query для импорта календаря с сайта КонсультантПлюс и связать его с вашей таблицей.

Как рассчитать зарплату по графику?

Добавьте в таблицу столбцы:

  • Часовая ставка сотрудника.
  • Коэффициент за ночные смены (обычно 1.2–1.4).
  • Коэффициент за праздничные дни (1.5–2.0).

Формула для расчёта:

=СУММПРОИЗВ(

(БлокСмен="Д") 8 Ставка;

(БлокСмен="Н") 7 Ставка * 1.2;

(БлокСмен="П") 8 Ставка * 1.5

)

Как синхронизировать график с Google Календарём?

Экспортируйте график в формат .ics (календарный файл) с помощью надстройки Excel Calendar Sync или VBA-скрипта. Инструкция:

  1. Установите надстройку из Microsoft AppSource.
  2. Выделите диапазон с датами и сменами.
  3. Нажмите Export to ICS и импортируйте файл в Google Календарь.

Что делать, если в графике ошибка и смена уже утверждена?

Внесите исправления и сохраните новую версию файла с пометкой в имени (например, График_июнь_в2.xlsx). Отправьте уведомление сотрудникам с объяснением изменений. Для отслеживания правок используйте:

Рецензирование → Отслеживать изменения → Выделить изменения

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