Почему Excel — лучший инструмент для составления графиков работы
Составление графика работы — задача, с которой сталкивается каждый HR-специалист, руководитель отдела или предприниматель. Вручную это делать не только долго, но и чревато ошибками: можно пропустить выходной, не учесть нормы рабочего времени или перепутать смены сотрудников. Microsoft Excel решает эту проблему, позволяя автоматизировать процесс с помощью формул, условного форматирования и сводных таблиц.
В отличие от специализированных программ (например, 1С:Зарплата или Bitrix24), Excel даёт гибкость: вы можете адаптировать график под любые условия — от 5/2 до скользящих смен с ночными дежурствами. Кроме того, файл всегда под рукой: его можно открыть на любом устройстве, отправить коллегам или распечатать для визуального контроля. Главное — правильно настроить логику расчётов.
В этой статье мы разберём:
- 📅 Как составить базовый график на месяц с учётом выходных и праздников
- ⚙️ Какие формулы использовать для автоматического заполнения смен
- ⚖️ Как соблюсти нормы Трудового кодекса РФ (ст. 91, 100, 110) при планировании
- 📊 Как визуализировать график для удобства сотрудников и проверок
Все примеры приведены для Excel 2019 и Microsoft 365, но подойдут и для Google Таблиц с минимальными правками. Готовые шаблоны вы сможете скачать в конце статьи.
Подготовка файла: структура и исходные данные
Прежде чем приступать к формулам, нужно правильно организовать таблицу. Ошибка на этом этапе приведёт к тому, что график будет считаться неправильно или вообще не будет работать. Вот минимальный набор данных, который потребуется:
- 📋 Список сотрудников (ФИО, должность, табельный номер)
- 🗓️ Даты месяца с указанием выходных и праздников
- ⏰ Типы смен (утренняя, дневная, ночная, выходной) и их продолжительность
- 📌 Нормы рабочего времени (например, 40 часов в неделю)
Создайте новый файл и разбейте его на 3 листа:
Сотрудники— здесь храните ФИО, должности и индивидуальные условия (например, неполный рабочий день).Календарь— таблица с датами, днями недели и пометками о выходных.График— итоговая таблица, где будут отображаться смены.
Пример структуры листа Календарь:
| Дата | День недели | Тип дня | Праздник |
|---|---|---|---|
| 01.06.2026 | Воскресенье | Выходной | День защиты детей |
| 02.06.2026 | Понедельник | Рабочий | - |
| 03.06.2026 | Вторник | Рабочий | - |
Важно: Для автоматического определения дней недели используйте формулу =ТЕКСТ(A2;"ДДДД"), где A2 — ячейка с датой. Это избавит от ручного ввода.
Формулы для автоматического заполнения смен
Теперь перейдём к самому сложному — настройке логики распределения смен. Здесь есть два подхода:
- Жёсткий график (например,
2 через 2илидень-ночь-отдых) — подходит для производств или круглосуточных служб. - Гибкий график — когда смены распределяются с учётом нагрузки или пожеланий сотрудников.
Рассмотрим первый вариант на примере графика 2 через 2 (два рабочих дня, два выходных). Для этого:
- На листе
Графиксоздайте таблицу, где строки — сотрудники, столбцы — даты. - В ячейку с первой датой для первого сотрудника введите
1(начало цикла). - В следующей ячейке (следующий день) введите формулу:
=ЕСЛИ(I2="Выходной";"В";ЕСЛИ(MOD(H2;4)<2;"Р";"В"))где:
I2— ячейка с типом дня (из листаКалендарь),H2— ячейка с предыдущим днём цикла,MOD(H2;4)— остаток от деления (определяет позицию в цикле).
Критическая деталь: если в вашей компании смены длятся не 24 часа, а например 12 (утро/вечер), замените MOD(H2;4) на MOD(H2;3) и скорректируйте условия в формуле.
Для гибкого графика используйте функцию ВЫБОР или ИНДЕКС с учётом приоритетов сотрудников. Например:
=ЕСЛИОШИБКА(ИНДЕКС(Смены;ПОИСКПОЗ(MИН(ЕСЛИ(ДостСотр=ИСТИНА;КолВоСмен));КолВоСмен;0));;"Нет данных")
Используются абсолютные ссылки ($A$1) для фиксированных диапазонов|
Формулы скопированы на весь диапазон дат|
Учтены праздничные дни как выходные|
Проверена логика смен на стыке месяцев (например, 31.05 → 01.06)
-->
Учёт норм рабочего времени по ТК РФ
Составленный график должен соответствовать Трудовому кодексу РФ, иначе компания рискует получить штрафы от трудовой инспекции. Основные требования:
- ⏱️ Норма рабочего времени — не более 40 часов в неделю (ст. 91 ТК РФ).
- 🌙 Ночные смены (с 22:00 до 6:00) должны быть сокращены на 1 час (ст. 96 ТК РФ).
- ☕ Перерывы — не менее 30 минут после 4 часов работы (ст. 108 ТК РФ).
- 🛌 Еженедельный отдых — не менее 42 часов (ст. 110 ТК РФ).
Чтобы автоматизировать проверку норм, добавьте в таблицу дополнительные столбцы:
| ФИО | Дата | Смена | Часы | Недельная норма | Превышение |
|---|---|---|---|---|---|
| Иванов И.И. | 02.06.2026 | Дневная | 8 | =СУММ(E2:E8) | =ЕСЛИ(F2>40;F2-40;"-") |
Для подсчёта ночных часов используйте формулу:
=ЕСЛИ(ИЛИ(ВРЕМЯ(ЧАС(НачалоСмены);МИНУТЫ(НачалоСмены);0)>=ВРЕМЯ(22;0;0);ВРЕМЯ(ЧАС(КонецСмены);МИНУТЫ(КонецСмены);0)<=ВРЕМЯ(6;0;0));1;0)
Что будет если не соблюдать нормы ТК РФ?
Нарушение норм рабочего времени чревато штрафами:
- Для должностных лиц: от 1 000 до 5 000 рублей (ч. 1 ст. 5.27 КоАП РФ).
- Для ИП: от 1 000 до 5 000 рублей или приостановка деятельности на 90 суток.
- Для юридических лиц: от 30 000 до 50 000 рублей.
Если нарушение повлекло вред здоровью сотрудника, ответственность уже будет по Уголовному кодексу (ст. 143 УК РФ).
Визуализация графика: условное форматирование и сводные таблицы
Готовый график должен быть не только правильным, но и удобочитаемым. Для этого используйте:
- 🎨 Условное форматирование — подсветка выходных, ночных смен, переработок.
- 📈 Сводные таблицы — для анализа нагрузки по отделам или должностям.
- 🖼️ Диаграммы — например, гистограмма распределения смен по дням недели.
Пример настройки условного форматирования:
- Выделите диапазон с графиком (например,
B2:Z20). - Перейдите на вкладку
Главная → Условное форматирование → Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - Установите условие:
Текст → содержащий → "Ночная"и задайте фон тёмно-синего цвета.
Для сводной таблицы:
- Выделите исходные данные (ФИО, даты, смены).
- Нажмите
Вставка → Сводная таблица. - В строки перетащите
ФИО, в столбцы —День недели, в значения —Количество смен.
Совет: Если график используется для большого количества сотрудников (50+), разбейте его на отдельные листы по отделам или бригадам. Это ускорит работу файла и упростит навигацию.
Автоматизация: макросы и Power Query
Если вам приходится составлять графики ежемесячно, имеет смысл автоматизировать процесс с помощью:
- 🤖 Макросов VBA — для копирования шаблона на новый месяц.
- 🔄 Power Query — для импорта данных из других источников (например, из 1С или Google Календаря).
Пример макроса для копирования графика на следующий месяц:
Sub CopyGraphic()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("График")
ws.Range("A1:Z100").Copy
ws.Range("A101").PasteSpecial xlPasteAll
' Обновляем даты на следующий месяц
Dim nextMonth As Date
nextMonth = DateSerial(Year(Date), Month(Date) + 1, 1)
ws.Range("A101").Value = nextMonth
' Заполняем остальные даты
ws.Range("A101").AutoFill Destination:=ws.Range("A101:A131"), Type:=xlFillSeries
Application.CutCopyMode = False
End Sub
Для Power Query:
- Перейдите на вкладку
Данные → Получить данные → Из файла → Из Excel. - Выберите файл с исходными данными (например, список сотрудников).
- Преобразуйте данные и загрузите их в текущую книгу.
Автоматизация особенно полезна, если:
- 📅 График составляется для 100+ сотрудников.
- 🔄 Есть частые изменения (больничные, отпуска, командировки).
- 📊 Нужно интегрировать данные с другими системами (например, табелем учёта рабочего времени).
Типичные ошибки и как их избежать
Даже опытные пользователи Excel допускают ошибки при составлении графиков. Вот самые распространённые:
⚠️ Внимание: Если в формуле используется функция ДЕНЬНЕД для определения выходных, учитывайте, что в некоторых регионах РФ выходными являются пятница и суббота (например, в республиках Северного Кавказа). Настройте формулу под местные особенности!
- 🔄 Зацикливание смен — когда график "сбивается" из-за неправильного учёта остатка от деления (
MOD). Решение: Проверяйте логику на стыке месяцев. - 📅 Пропущенные праздники — если не обновлять лист
Календарь, график будет считать праздники как рабочие дни. Решение: ИспользуйтеВПРдля подтягивания праздников из внешнего источника. - ⏳ Превышение нормы рабочего времени — часто возникает при ручной правке графика. Решение: Добавьте столбец с проверкой
=ЕСЛИ(СУММ(ЧасыЗаНеделю)>40;"Превышение";"ОК").
Ещё одна типичная проблема — конфликт смен, когда на одну дату назначено недостаточно сотрудников (например, в ночную смену должен работать 1 человек, а график назначил 0). Чтобы этого избежать, добавьте проверку:
=ЕСЛИ(СЧЁТЕСЛИ(ДиапазонСмен;Дата)<МинимальноеКолВоСотрудников;"Недостаток персонала";"ОК")
Если график используется для круглосуточного предприятия (больница, охрана), обязательно проверяйте:
- 🕒 Перекрытие смен (нет "окон" без сотрудников).
- 🛌 Соблюдение времени отдыха между сменами (не менее 12 часов).
Готовые шаблоны и полезные надстройки
Если нет времени или желания создавать график с нуля, воспользуйтесь готовыми решениями:
- 📄 Шаблоны от Microsoft — в самом Excel есть встроенные шаблоны графиков (вкладка
Файл → Создать → График работы). - 🔧 Надстройка "Shift Scheduler" — плагин для Excel, который автоматизирует распределение смен с учётом пожеланий сотрудников.
- 🌐 Онлайн-сервисы — например, When I Work или Shiftboard, которые можно интегрировать с Excel через API.
Для скачивания нашего шаблона графика работы перейдите по ссылке:
Скачать шаблон графика работы в Excel (файл включает формулы, условное форматирование и инструкцию).
Если вам нужно учитывать специфические условия (например, вахтовый метод или гибкий график), обратите внимание на надстройки:
| Надстройка | Функционал | Стоимость |
|---|---|---|
| Excel Shift Planner | Автоматическое распределение смен, учёта отпусков, больничных | От 1 500 руб. |
| TimeTrex | Интеграция с табелем, расчёт зарплаты, отчёты | От 3 000 руб./мес. |
Важно: Перед покупкой надстройки проверьте её совместимость с вашей версией Excel. Некоторые плагины работают только в Microsoft 365 или Excel 2019.
FAQ: Ответы на частые вопросы
Как учесть отпуска и больничные в графике?
Добавьте на лист Сотрудники столбцы Отпуск с, Отпуск по, Больничный с, Больничный по. Затем модифицируйте формулу графика:
=ЕСЛИ(ИЛИ(Дата>=ОтпускС;Дата<=ОтпускПо);"О";ЕСЛИ(ИЛИ(Дата>=БольничныйС;Дата<=БольничныйПо);"Б";ИсходнаяФормула))
Где О — отпуск, Б — больничный.
Можно ли сделать график для скользящего расписания (например, 2/2, 3/1)?
Да. Для этого:
- Создайте на отдельном листе таблицу с паттернами смен (например,
РРВВдля 2/2). - Используйте функцию
ПОВТОРилиИНДЕКСдля циклического распределения паттернов. - Добавьте проверку на праздники и индивидуальные условия сотрудников.
Пример формулы для паттерна РРВВ:
=ИНДЕКС(Паттерн;MOD(СЧЁТЗ($A$2:A2)-1;4)+1)
Как экспортировать график в Word или PDF для распечатки?
Чтобы график хорошо выглядел на бумаге:
- Выделите диапазон графика.
- Перейдите на вкладку
Разметка страницы → Область печати → Задать. - Настройте параметры страницы (
Файл → Печать): ориентацияАльбомная, масштабПо ширине. - Для экспорта в PDF нажмите
Файл → Экспорт → Создать PDF/XPS.
Если график не помещается на один лист, разбейте его на части или уменьшите шрифт (но не менее 10 pt для читаемости).
Как учитывать переработки и оплачивать их в 1,5 или 2 размере?
Добавьте в график столбцы:
Норма часов— 40 часов в неделю.Фактические часы— сумма по сотруднику за неделю.Переработка—=ЕСЛИ(ФактическиеЧасы>Норма;ФактическиеЧасы-Норма;0).Оплата переработки—=ЕСЛИ(Переработка>2;(Переработка-2)*2+2*1,5;Переработка*1,5)(первые 2 часа в 1,5 размере, остальные — в 2).
Можно ли интегрировать график из Excel с 1С:Зарплатой?
Да, есть несколько способов:
- Ручной импорт: экспортируйте график в
.csvи загружайте в 1С черезАдминистрирование → Загрузка данных. - Обмен через XML: настройте правила конвертации в 1С и используйте
Внешние обработки. - Специализированные модули: например, "1С:Интеграция с Excel" (стоимость от 5 000 руб.).
Для автоматического обмена потребуется помощь программиста 1С.