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

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

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

Если вы никогда не работали с датами в Excel, не переживайте: мы начнём с азов и постепенно перейдём к продвинутым техникам. А если вы опытный пользователь, то найдёте здесь неочевидные лайфхаки, например, как автоматически подсвечивать праздники или генерировать график на год вперёд за несколько кликов.

1. Базовый график рабочих дней: шаг за шагом

Начнём с самого простого — создания статичного графика на месяц с учётом стандартных выходных (суббота и воскресенье). Этот метод подойдёт для небольших команд или личного планирования.

Шаг 1. Создайте структуру таблицы

Откройте новый лист в Excel и создайте заголовки для столбцов:

  • 📅 Дата — здесь будут отображаться дни месяца.
  • 🏢 День недели — для удобства восприятия.
  • 👔 Тип дня — рабочий/выходной/праздник.
  • Время работы — график (например, 9:00–18:00).

Шаг 2. Заполните столбец с датами

В ячейку A2 введите первую дату месяца (например, 01.06.2026). Затем:

  1. Выделите ячейку A2.
  2. Подведите курсор к правому нижнему углу ячейки (появится чёрный крестик — маркер заполнения).
  3. Протяните вниз до конца месяца (например, до 30 или 31 числа).

Excel автоматически заполнит столбец последовательными датами.

Шаг 3. Определите дни недели

В ячейку B2 введите формулу:

=ТЕКСТ(A2;"ДДДД")

Эта формула преобразует дату в полное название дня недели (например, "понедельник"). Протяните её вниз до конца списка дат.

Шаг 4. Пометьте выходные

В столбце C2 (Тип дня) используйте формулу:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5);"Выходной";"Рабочий")

Здесь ДЕНЬНЕД(A2;2) возвращает номер дня недели (1 — понедельник, 7 — воскресенье). Формула проверяет, если день суббота (6) или воскресенье (7), то помечает его как "Выходной".

Почему в формуле используется аргумент "2"?

Аргумент "2" в функции ДЕНЬНЕД указывает, что неделя начинается с понедельника (1). Если не указать этот аргумент или поставить "1", то неделя будет начинаться с воскресенья (стандарт США).

2. Учёт праздничных дней: как не пропустить нерабочие даты

Стандартный график с выходными в субботу и воскресенье — это только половина дела. В России (как и в других странах) есть государственные праздники, которые выпадают на будни и тоже считаются выходными. Как их учесть?

Способ 1. Ручной ввод праздников

Создайте отдельный лист в книге Excel и назовите его "Праздники". В первом столбце перечислите все праздничные даты на год (например, 1 января, 9 мая и т. д.). Затем вернитесь на лист с графиком и модифицируйте формулу в столбце C2:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5;СЧЁТЕСЛИ(Праздники!A:A;A2)>0);"Выходной";"Рабочий")

Функция СЧЁТЕСЛИ проверяет, есть ли текущая дата в списке праздников. Если да — день помечается как выходной.

Способ 2. Автоматическое подтягивание праздников из интернета (Power Query)

Если у вас Excel 2016 или новее, можно подгрузить список праздников автоматически:

  1. Перейдите на вкладку ДанныеПолучить данныеИз других источниковИз веб.
  2. Вставьте URL с календарём праздников (например, с сайта Consultant.ru или Календарь.ру).
  3. Преобразуйте данные в таблицу и загрузите на отдельный лист.

Теперь ваш график будет обновляться автоматически при изменении списка праздников.

📊 Как вы обычно учитываете праздники в графике?
Ввожу вручную
Использую формулы
Подгружаю из интернета
Не учитываю

3. График сменной работы: чередование дневных и ночных смен

Если ваша команда работает посменно (например, "день-ночь-отдых"), стандартный график не подойдёт. Здесь нужна более сложная логика, которая будет чередовать смены с учётом цикла.

Пример: график "2 через 2" (два дня работы, два дня отдыха)

Допустим, смены начинаются с 1 июня. Создайте дополнительный столбец D2 с названием "Смена" и используйте формулу:

=ЕСЛИ(ОСТАТ(MOD(СЧЁТЗ(A$2:A2)-1;4);4)<2;"День";ЕСЛИ(ОСТАТ(MOD(СЧЁТЗ(A$2:A2)-1;4);4)<4;"Ночь";"Отдых"))

Разберём, как это работает:

  • 🔢 СЧЁТЗ(A$2:A2) — считает количество заполненных ячеек в столбце A (т. е. дни).
  • 🔄 MOD(...,4) — делит номер дня на 4 (цикл "2+2") и возвращает остаток.
  • 📊 ОСТАТ(...,4) — дублирует MOD для совместимости со старыми версиями Excel.

В результате формула чередует: 2 дня "День" → 2 дня "Ночь" → и так далее.

Визуализация смен с помощью условного форматирования

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

  1. Выделите столбец D (Смена).
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Форматировать только ячейки, которые содержат.
  4. Установите правило: ТекстсодержитДень, и задайте зелёный фон.
  5. Повторите для "Ночь" (синий фон) и "Отдых" (серый фон).

Сверьте количество рабочих/выходных дней в цикле|Убедитесь, что праздники не попали на рабочие смены|Проверьте, что ночные смены не следуют подряд более допустимого лимита|Настройте условное форматирование для наглядности-->

4. Динамический график: автоматизация на год вперёд

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

Шаг 1. Создайте выпадающие списки для года и месяца

В ячейках E1 и F1 создайте выпадающие списки:

  • 📅 Для года: ДанныеПроверка данныхСписок → укажите диапазон с годами (например, 2026, 2026, 2026).
  • 📆 Для месяца: аналогично, но со значениями от 1 до 12.

Шаг 2. Формула для первой даты месяца

В ячейку A2 введите:

=ДАТА($E$1;$F$1;1)

Эта формула берёт год из E1 и месяц из F1, формируя первую дату выбранного периода.

Шаг 3. Автоматическое заполнение дат до конца месяца

В ячейку A3 введите:

=ЕСЛИ(A2="";"";ЕСЛИ(ДЕНЬ(A2+1)=1;"";A2+1))

Протяните формулу вниз на 31 строку. Логика проста:

  • Если следующая дата — 1-е число (новый месяц), ячейка остаётся пустой.
  • Иначе добавляется +1 день.

Шаг 4. Добавляем названия месяцев

В ячейку B1 (над графиком) введите формулу для отображения названия месяца и года:

=ТЕКСТ(ДАТА($E$1;$F$1;1);"ММММ YYYY")

Теперь при изменении выпадающих списков график будет пересчитываться автоматически.

5. Учёт индивидуальных графиков сотрудников

В реальной жизни у сотрудников могут быть индивидуальные графики: кто-то работает на полставки, кто-то в удалённом формате, а у кого-то гибкий график. Как учесть это в Excel?

Способ 1. Отдельные листы для каждого сотрудника

Создайте копию листа с базовым графиком для каждого сотрудника и переименуйте листы по фамилиям. Затем скорректируйте график под индивидуальные особенности:

  • 🕒 Измените время работы (столбец D).
  • 🏠 Добавьте столбец "Формат работы" (офис/удалёнка).
  • 📅 Укажите персональные выходные (например, "пятница — короткий день").

Способ 2. Сводная таблица с фильтрами

Если сотрудников много, удобнее создать сводную таблицу:

  1. На отдельном листе соберите данные всех сотрудников в одну таблицу с колонками: ФИО, Дата, Тип дня, Время работы.
  2. Выделите таблицу и нажмите ВставкаСводная таблица.
  3. В настройках сводной таблицы перетащите ФИО в поле "Строки", а Дата и Тип дня — в поле "Значения".
  4. Добавьте срезы (ВставкаСрез), чтобы быстро фильтровать графики по сотрудникам или месяцам.

Способ 3. Использование Power Pivot (для продвинутых пользователей)

Если у вас Excel 2013 или новее, можно воспользоваться надстройкой Power Pivot для создания многомерных моделей данных. Это позволит:

  • 🔗 Связать несколько таблиц (например, графики, праздники, данные сотрудников).
  • 📊 Создавать сложные вычисления (например, подсчёт отработанных часов по каждому сотруднику).
  • 🔄 Автоматически обновлять данные при изменении исходных таблиц.
Sub ОбновитьГрафики()

ActiveWorkbook.RefreshAll

End Sub

Присвойте макрос фигуре (например, кнопке) на листе.-->

6. Визуализация графика: как сделать его понятным

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

1. Условное форматирование по типам дней

Мы уже использовали его для подсветки смен, но можно пойти дальше:

Тип дня Цвет фона Цвет текста Пример правила
Рабочий день Светло-зелёный Чёрный =И($C2="Рабочий";ДЕНЬНЕД($A2;2)<6)
Выходной Светло-серый Тёмно-серый =ИЛИ($C2="Выходной";ДЕНЬНЕД($A2;2)>5)
Праздник Светло-красный Белый =И($C2="Праздник";СЧЁТЕСЛИ(Праздники!A:A;$A2)>0)
Ночная смена Тёмно-синий Белый =И($D2="Ночь")

2. Добавьте индикаторы загруженности

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

  • 📈 Используйте Гистограммы в ячейках (условное форматирование → гистограммы).
  • 🔴 Добавьте столбец "Нагрузка" и заполните его значениями от 1 до 5 (1 — минимальная, 5 — максимальная).

3. Вставьте календарь на год

Для долгосрочного планирования удобно иметь годовой календарь на одном листе. Создать его можно с помощью формул или скачать готовый шаблон. Пример формулы для ячейки с датой:

=ДАТА($A$1;СТРОКА(A1);СТОЛБЕЦ(A1))

Где:

  • $A$1 — ячейка с годом.
  • СТРОКА(A1) — номер месяца (от 1 до 12).
  • СТОЛБЕЦ(A1) — номер дня в месяце (от 1 до 31).
Как скрыть пустые ячейки в календаре?

Используйте условное форматирование с правилом =ИМЕННО(A1;"") и установите белый цвет текста для пустых ячеек. Так дни, которых нет в месяце (например, 31 апреля), не будут отвлекать.

7. Экспорт и печать графика

Когда график готов, его нужно распечатать или экспортировать для рассылки сотрудникам. Вот как сделать это профессионально:

1. Настройка области печати

Перед печатью:

  • 🖼️ Выделите диапазон ячеек, который нужно напечатать.
  • 📄 Перейдите на вкладку Разметка страницыОбласть печатиЗадать.
  • 🔍 Убедитесь, что все столбцы помещаются на странице (при необходимости измените масштаб в настройках печати).

2. Добавьте колонтитулы

В колонтитулах укажите:

  • 📅 Месяц и год (можно автоматизировать с помощью &[Месяц] &[Год]).
  • 🏢 Название отдела или компании.
  • 📧 Контакты для вопросов (например, email HR-менеджера).

3. Экспорт в PDF

Чтобы отправить график сотрудникам:

  1. Нажмите ФайлЭкспортСоздать PDF/XPS.
  2. Выберите папку для сохранения и нажмите Опубликовать.
  3. При необходимости защитите файл паролем (в настройках PDF).

4. Автоматическая рассылка по email (с помощью Power Automate)

Если вы используете Microsoft 365, можно настроить автоматическую рассылку графиков по email:

  • 🤖 Создайте поток в Power Automate с триггером "По расписанию" (например, 25-го числа каждого месяца).
  • 📎 Добавьте действие "Экспорт файла Excel в PDF".
  • ✉️ Настройте действие "Отправить email" с вложением PDF.

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

Даже в простом графике легко допустить ошибку, которая приведёт к путанице. Вот самые распространённые проблемы и способы их решения:

1. Неучтённые праздничные дни

Проблема: В графике не отмечены переносы выходных (например, если праздничный понедельник становится выходным, а суббота — рабочим днём).

Решение: Сверяйтесь с производственным календарём на текущий год (публикуется на сайте Правительства РФ). Добавьте в список праздников не только сами праздники, но и перенесённые выходные.

2. Ошибки в формулах при копировании

Проблема: При протягивании формулы вниз ссылки на ячейки сбиваются (например, вместо $A$1 становится A2).

Решение: Используйте абсолютные ссылки (со знаком $) для фиксированных ячеек (например, год и месяц в динамическом графике). Пример правильной формулы:

=ДАТА($E$1;$F$1;СТРОКА(A1))

3. Конфликты в сменном графике

Проблема: Сотрудник назначен на две смены подряд без отдыха (например, ночная смена заканчивается в 8:00, а дневная начинается в 9:00).

Решение: Добавьте в график столбец "Проверка" с формулой:

=ЕСЛИ(И(D2="Ночь";D3="День");"Конфликт!";"")

Эта формула выявит дни, когда ночная смена сразу сменяется дневной.

4. Несоответствие дат и дней недели

Проблема: В графике указано, что 1 июня — среда, хотя на самом деле это суббота.

Решение: Проверьте формат ячеек с датами. Они должны быть в формате Дата, а не Текст. Если Excel воспринимает даты как текст, используйте функцию =ДАТАЗНАЧ(A2) для преобразования.

5. Забытые обновления графика

Проблема: График не обновляется при смене месяца, потому что формулы не пересчитываются.

Решение: Настройте автоматический пересчёт формул:

  1. Перейдите в ФайлПараметрыФормулы.
  2. В разделе Параметры вычислений выберите Автоматически.

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

🔹 Как учесть региональные праздники (например, День города)?

Создайте отдельный лист "Региональные праздники" и добавьте туда даты. Затем модифицируйте формулу в столбце "Тип дня":

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5;СЧЁТЕСЛИ(Праздники!A:A;A2)>0;СЧЁТЕСЛИ(Региональные!A:A;A2)>0);"Выходной";"Рабочий")
🔹 Можно ли сделать график, который сам подсчитывает отработанные часы?

Да! Добавьте столбец "Часы" и используйте формулу:

=ЕСЛИ(C2="Рабочий";8;ЕСЛИ(C2="Ночь";12;0))

Затем внизу таблицы добавьте строку с суммой:

=СУММ(E2:E31)

Для подсчёта часов по каждому сотруднику используйте функцию СУММЕСЛИ.

🔹 Как сделать график для вахтового метода работы (например, 15/15)?

Используйте формулу с учётом цикла:

=ЕСЛИ(ОСТАТ(СЧЁТЗ($A$2:A2);30)<15;"Работа";"Отдых")

Здесь 30 — длина цикла (15 рабочих + 15 выходных дней). Для вахты 30/30 замените на 60.

🔹 Можно ли интегрировать график Excel с Google Календарём?

Да, для этого:

  1. Экспортируйте график в формат .csv.
  2. Импортируйте его в Google Календарь через ФайлИмпорт.
  3. Настройте повторяющиеся события для смен.

Alternatively, используйте надстройку Excel to Google Calendar для автоматической синхронизации.

🔹 Как защитить график от случайных изменений?

Выделите диапазон ячеек, который нужно защитить, затем:

  1. Перейдите на вкладку РецензированиеЗащитить лист.
  2. Установите пароль (необязательно).
  3. В настройках защиты разрешите только те действия, которые нужны пользователям (например, выделение ячеек).

Внимание: Не забывайте пароль — восстановить его невозможно!