График дежурств в Excel: 5 способов автоматизации расписания

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

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

1. Базовый график дежурств: таблица за 10 минут

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

Создайте таблицу с двумя ключевыми блоками:

  • 📅 Дата и день недели — столбец с датами (например, с 1 по 30 число) и автоматически подтянутыми днями недели (используйте формат ячейки дддд).
  • 👥 Список сотрудников — строки с именами дежурных (по одному на строку).

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

Дата День недели Дежурный 1 Дежурный 2 Примечания
01.06.2026 Суббота Иванов П.С. Петрова А.И. Праздник
02.06.2026 Воскресенье Сидоров К.Л. Выходной
03.06.2026 Понедельник Кузнецова Е.Р. Новиков Д.А.

Для визуального контроля используйте условное форматирование: выделите столбцы с дежурными, перейдите в Главная → Условное форматирование → Правила выделения ячеек → Текст, содержащий и задайте цвет для ячеек с фамилиями (например, зелёный для дежурств в будни, красный — в выходные).

2. Автоматическое распределение дежурств по очереди

Ручное заполнение графика отнимает время, особенно если дежурства идут по фиксированному порядку (например, по алфавиту или по номеру в списке). Автоматизируем процесс с помощью формулы ИНДЕКС.

Предположим, у вас есть список сотрудников в столбце E2:E10, а даты — в столбце A2:A31. В ячейку B2 (первый дежурный) введите:

=ИНДЕКС($E$2:$E$10;ОСТАТ(СТРОКА(A1);ЧСТРОК($E$2:$E$10))+1)

Эта формула:

  • 🔄 Циклично проходит по списку сотрудников (после последнего снова начинает с первого).
  • 📌 Привязана к строке, поэтому достаточно растянуть её на все даты месяца.
  • ⚡ Мгновенно обновляется при добавлении/удалении имён в списке.
📊 Как часто вам приходится составлять график дежурств?
Еженедельно
Ежемесячно
Раз в квартал
Реже
Никогда

Критическая деталь: если в вашей команде чётное число сотрудников, а дежурств нечётное (или наоборот), формула может "сбиться" на последний день. Чтобы избежать этого, добавьте в список фиктивного сотрудника (например, "Резерв") или скорректируйте количество строк.

⚠️ Внимание: Если в графике участвуют сотрудники с разной нагрузкой (например, кто-то дежурит раз в неделю, а кто-то — раз в месяц), этот метод не подойдёт. В таком случае используйте взвешенное распределение (см. раздел 4).

3. Учёт выходных и праздников

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

Создайте дополнительный столбец Тип дня с формулой:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5;[проверка на праздники]);"Выходной";"Будний")

Где [проверка на праздники] — это отдельная функция, которая сверяет дату с списком праздников (например, из другого листа). Пример списка праздников:

Дата Название праздника
01.01.2026 Новый год
07.01.2026 Рождество
23.02.2026 День защитника Отечества

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

=ЕСЛИ(C2="Выходной";ИНДЕКС(Выходные_сотрудники;...);ИНДЕКС(Будние_сотрудники;...))
Как добавить региональные праздники?

Создайте отдельный лист "Праздники", где в первом столбце укажите даты, а во втором — названия. Затем используйте функцию ПОИСКПОЗ или ВПР, чтобы проверять, есть ли дата из графика в этом списке. Пример формулы: =ЕСЛИОШИБКА(ВПР(A2;Праздники!A:B;1;ЛОЖЬ);"";"Праздник").

4. Взвешенное распределение: учитываем нагрузку

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

Добавьте к списку сотрудников столбец Коэффициент нагрузки (например, 1 — стандартная нагрузка, 0.5 — дежурит в два раза реже, 2 — в два раза чаще). Затем используйте вспомогательную таблицу для расчёта "виртуальных смен":

  1. Создайте список, где каждое имя повторяется столько раз, сколько указано в коэффициенте (например, Иванов с коэффициентом 2 появится дважды).
  2. Перемешайте этот список случайно (функция =СЛЧИС() в вспомогательном столбце + сортировка).
  3. Используйте формулу ИНДЕКС для последовательного назначения дежурств из перемешанного списка.

Пример вспомогательной таблицы:

Сотрудник Коэффициент Виртуальные смены
Иванов П.С. 2 Иванов П.С.
Иванов П.С.
Петрова А.И. 1 Петрова А.И.
Сидоров К.Л. 0.5 Сидоров К.Л.

Создать столбец с коэффициентами нагрузки|Проверить, что сумма коэффициентов равна нужному числу смен|Сгенерировать виртуальные смены|Перемешать список случайно|Назначить дежурства по формуле

-->

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

=ИНДЕКС($A$2:$A$10;РАНГ($C$2:$C$10;C2;1))

где A2:A10 — список сотрудников, а C2:C10 — столбец со случайными числами (=СЛЧИС()).

5. Интерактивный график с выпадающими списками

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

Шаги для создания интерактивного графика:

  1. Выделите ячейки, где будут фамилии дежурных.
  2. Перейдите в Данные → Проверка данных → Тип данных: Список.
  3. В поле Источник укажите диапазон с фамилиями сотрудников (например, =Лист1!$E$2:$E$10).
  4. Защитите остальные ячейки: Рецензирование → Защитить лист (предварительно снимите защиту с ячеек выпадающих списков).

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

  • 🟢 Зелёный — если сотрудник дежурит не чаще положенного (сравните с коэффициентом нагрузки).
  • 🟡 Жёлтый — если нагрузка превышена на 20%.
  • 🔴 Красный — если превышение более 50%.

6. Экспорт графика в Google Календарь

Чтобы график дежурств был всегда под рукой, экспортируйте его в Google Календарь. Для этого:

  1. Добавьте в Excel столбцы с Началом дежурства и Окончанием дежурства (например, с 9:00 до 18:00).
  2. Сохраните файл в формате .csv (Файл → Сохранить как → CSV).
  3. Импортируйте файл в Google Календарь: Создать → Импорт, выберите CSV-файл и укажите столбцы с датами.

Для автоматизации процесса используйте Google Apps Script (если график хранится в Google Sheets):

function exportToCalendar() {

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var calendar = CalendarApp.getDefaultCalendar();

var data = sheet.getDataRange().getValues();

for (var i = 1; i < data.length; i++) {

if (data[i][2] !== "") { // Если ячейка с дежурным не пустая

calendar.createAllDayEvent(

"Дежурство: " + data[i][2],

new Date(data[i][0])

);

}

}

}

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

⚠️ Внимание: При экспорте в Google Календарь проверьте, что даты в Excel имеют формат дд.мм.гггг. Если Excel распознаёт даты как текст, календарь не сможет их корректно импортировать. Используйте функцию =ДАТАЗНАЧ() для преобразования.

7. Шаблоны и готовые решения

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

  • 📄 Шаблон от Microsoft: в Excel перейдите в Файл → Создать → Шаблоны → График дежурств (доступно в новых версиях).
  • 🌐 Vertex42: бесплатные шаблоны для разных сфер (медицина, образование, офис) — ссылка.
  • 📊 Smartsheet: облачные шаблоны с уведомлениями и интеграцией с календарями.

При выборе шаблона обратите внимание на:

  • 🔄 Возможность автоматического переноса дежурств на следующий месяц.
  • 📱 Aдаптивность для просмотра на телефоне (если команда использует мобильные устройства).
  • 🔔 Встроенные уведомления о предстоящих дежурствах (в облачных сервисах).

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

Дата Дневная смена (9:00–21:00) Ночная смена (21:00–9:00) Ответственный
01.06.2026 Иванова М.П. Сидоров К.Л. Петров А.И.

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

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

Используйте формулу с проверкой предыдущего дня. Например, если дежурные указаны в столбце B, в ячейку B3 введите:

=ЕСЛИ(B2=ИНДЕКС(Список_сотрудников;...);ИНДЕКС(Список_сотрудников;МИН(ЕСЛИ(Список_сотрудников<>B2;ПОИСКПОЗ(Список_сотрудников;Список_сотрудников;0))));ИНДЕКС(Список_сотрудников;...))

Эта формула проверяет, не совпадает ли текущий дежурный с предыдущим, и если совпадает — выбирает следующего по списку.

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

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

  1. Сохраните график в Google Sheets.
  2. Напишите скрипт на Google Apps Script, который будет отправлять email через MailApp.sendEmail().
  3. Настройте триггер на отправку за день до дежурства.

Пример кода для отправки:

function sendAlerts() {

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("График");

var data = sheet.getDataRange().getValues();

var today = new Date();

today.setDate(today.getDate() + 1); // Завтра

for (var i = 1; i < data.length; i++) {

if (data[i][0] instanceof Date && data[i][0].toDateString() === today.toDateString()) {

MailApp.sendEmail(

"employee@example.com",

"Напоминание о дежурстве",

"Завтра вы дежурите. Дата: " + data[i][0].toLocaleDateString()

);

}

}

}

Как учитывать отпуска и больничные в графике?

Добавьте отдельный лист с датами отпусков и используйте функцию ВПР или ПОИСКПОЗ, чтобы проверять, не попадает ли дата дежурства на отпуск сотрудника. Пример:

=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;Отпуска!A:A;0));"Отпуск";ИНДЕКС(Список_сотрудников;...))

Где Отпуска!A:A — столбец с датами отпусков на отдельном листе.

Как сделать график дежурств на год вперед?

Для годового графика:

  1. Создайте лист с датами на весь год (используйте автозаполнение).
  2. Добавьте столбец с номерами недель (=НОМНЕДЕЛИ(A2)).
  3. Настройте формулы распределения с учётом чередования по неделям (например, одна бригада дежурит на чётных неделях, другая — на нечётных).

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

Можно ли сделать график дежурств в Excel Online?

Да, все описанные методы работают в Excel Online, за исключением:

  • Макросов (VBA) — в онлайн-версии не поддерживаются.
  • Некоторых надстроек (например, Power Query доступен только в десктопной версии).

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