Как построить график отпусков в Excel: 5 способов с примерами

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

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

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

Подготовка исходных данных: структура таблицы

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

  • 📌 ФИО сотрудника — обязательное поле для идентификации.
  • 📅 Дата начала отпуска — формат ДД.ММ.ГГГГ.
  • 📅 Дата окончания отпуска — автоматически рассчитывается на основе продолжительности.
  • Продолжительность (дней) — можно вычислять формулой или вводить вручную.
  • 🏢 Отдел — для фильтрации по подразделениям.
  • Статус (утверждён/на рассмотрении/отклонён).

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

ФИО Отдел Дата начала Дата окончания Дней Статус
Иванов П.С. Бухгалтерия 10.07.2026 23.07.2026 14 Утверждён
Петрова А.И. Маркетинг 15.08.2026 04.09.2026 21 На рассмотрении
Сидоров К.В. IT 01.09.2026 14.09.2026 14 Утверждён

Важно: используйте формат Дата для столбцов с датами (выделите ячейки → Формат → Формат ячеек → Дата). Это позволит позже строить диаграммы и использовать функции даты. Также рекомендуется добавить столбец ID для каждого сотрудника — это поможет избежать ошибок при сортировке.

⚠️ Внимание: Если в вашей компании действует правило "не более 2 сотрудников в отпуске одновременно в одном отделе", добавьте столбец Приоритет (например, "высокий/средний/низкий") для разрешения конфликтов.
📊 Как вы сейчас планируете отпуска сотрудников?
В Excel
На бумаге
В специализированной программе (1С, Битрикс24)
Не планируем заранее

Способ 1: Простой календарь отпусков с условным форматированием

Самый быстрый способ визуализировать отпуска — создать календарь на год с пометками. Для этого:

  1. Создайте таблицу с месяцами по строкам и числами по столбцам (например, январь — 31 столбец, февраль — 28 и т.д.).
  2. В отдельном столбце укажите ФИО сотрудников.
  3. Для каждой ячейки с датой отпуска примените условное форматирование:

=И($A2="Иванов П.С.";B$1>=$D$2;B$1<=$E$2)

Где:

  • $A2 — ячейка с ФИО сотрудника;
  • B$1 — дата в шапке календаря;
  • $D$2 и $E$2 — даты начала и окончания отпуска из основной таблицы.

Затем установите цвет заполнения (например, светло-зелёный для утверждённых отпусков, жёлтый — для рассматриваемых).

Создать таблицу с датами на год|

Добавить список сотрудников в отдельный столбец|

Применить условное форматирование для каждого сотрудника|

Настроить цвета для разных статусов отпусков

-->

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

⚠️ Внимание: Если вы используете Excel Online, условное форматирование с формулами может работать медленнее, чем в десктопной версии. Для больших таблиц (более 50 сотрудников) лучше использовать сводные таблицы или диаграммы Ганта.

Способ 2: Диаграмма Ганта для визуализации отпусков

Диаграмма Ганта — идеальный инструмент для отображения временных интервалов. В контексте отпусков она позволяет увидеть:

  • 🔹 Перекрытия отпусков в одном отделе;
  • 🔹 Продолжительность каждого отпуска;
  • 🔹 Распределение нагрузки по месяцам.

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

  1. На основе исходной таблицы создайте дополнительные столбцы:
    • Дней до начала = Дата начала - Дата начала первого отпуска в году;
    • Продолжительность (уже есть в исходной таблице).
  • Выделите данные и выберите Вставка → Вставить столбчатую или линейную диаграмму → Линейная с накоплением.
  • Отформатируйте диаграмму:
    • Уберите линию "Дней до начала" (сделайте её прозрачной);
    • Закрасьте серии по статусам (например, красный — отклонено, зелёный — утверждено).
    • Пример формулы для расчёта "Дней до начала":

      =B2-MIN($B$2:$B$100)

      Где B2 — дата начала отпуска первого сотрудника, а $B$2:$B$100 — диапазон всех дат начала.

      Как добавить вертикальные линии для месяцев?

      Чтобы визуально разделить диаграмму Ганта по месяцам, добавьте вспомогательную серию данных с датами начала каждого месяца (например, 01.01, 01.02 и т.д.). Затем отформатируйте эту серию как вертикальные линии с помощью параметров Добавить линию → Вертикальная в настройках диаграммы.

      Диаграмма Ганта особенно полезна для крупных отделов, где важно избегать одновременных уходов в отпуск ключевых сотрудников. Например, если в отделе из 10 человек не может отсутствовать более 2 одновременно, диаграмма сразу покажет нарушения.

      Способ 3: Сводная таблица с фильтрами по отделам

      Если в вашей компании более 50 сотрудников, обычная таблица становится неудобной. Решение — сводная таблица с возможностью фильтрации по отделам, месяцам или статусам. Алгоритм создания:

      1. Выделите исходную таблицу с данными об отпусках.
      2. Перейдите на вкладку Вставка → Сводная таблица.
      3. В настройках сводной таблицы:
        • Поместите Отдел в область Фильтры;
        • Поместите ФИО в область Строки;
        • Поместите Дата начала и Дата окончания в область Значения (с операцией Минимум и Максимум соответственно).
    • Добавьте срезы (Анализ → Вставить срез) для удобной фильтрации по статусам или месяцам.

    Преимущества сводной таблицы:

    • 🔍 Быстрая фильтрация по любому параметру (отдел, месяц, статус);
    • 📊 Автоматическое обновление при изменении исходных данных;
    • 🖼️ Возможность построения диаграмм на основе сводной таблицы.
    ⚠️ Внимание: Если в сводной таблице не отображаются даты корректно, проверьте формат ячеек в исходных данных. Excel может воспринимать даты как текст, если они были импортированы из внешних источников. Исправьте это с помощью Формат ячеек → Дата.

    Способ 4: Интерактивная панель с Power Query и Power Pivot

    Для продвинутых пользователей Excel (версии 2016 и новее) доступны инструменты Power Query и Power Pivot, которые позволяют создать полноценную интерактивную панель управления отпусками. Этот способ подходит для HR-отделов крупных компаний, где требуется:

    • 📅 Автоматическое обновление данных из внешних источников (например, 1С);
    • 🔄 Сложные фильтры (например, "показать отпуска длительностью более 14 дней в летние месяцы");
    • 📊 Визуализация в виде нескольких связанных диаграмм.

    Пошаговая инструкция:

    1. Импортируйте данные об отпусках через Данные → Получить данные → Из таблицы/диапазона (Power Query).
    2. В Power Pivot создайте связи между таблицами (например, таблица "Сотрудники" и "Отпуска").
    3. Постройте меру для расчёта количества сотрудников в отпуске по дням:
      
      

      Сотрудники в отпуске :=

      CALCULATE(

      COUNTROWS('Отпуска'),

      FILTER(

      'Отпуска',

      'Отпуска'[Дата] >= EARLIER('Календарь'[Дата]) &&

      'Отпуска'[Дата] <= EARLIER('Календарь'[Дата])

      )

      )

    4. Создайте визуализации:
      • Линейную диаграмму по количеству сотрудников в отпуске по месяцам;
      • Таблицу с фильтрами по отделам;
      • Карту тепловой интенсивности (heatmap) по дням.
  • Такой подход требует начальных знаний DAX (язык формул для Power Pivot), но даёт максимальную гибкость. Например, вы можете настроить автоматическое оповещение, если в каком-то месяце слишком много сотрудников планирует отпуск.

    Способ 5: Автоматизация с помощью VBA (для опытных пользователей)

    Если вам нужно не только визуализировать отпуска, но и автоматизировать процессы (например, отправлять уведомления о предстоящих отпусках), можно использовать макросы VBA. Пример кода для создания календаря отпусков автоматически:

    
    

    Sub CreateVacationCalendar()

    Dim ws As Worksheet

    Dim lastRow As Long, i As Long

    Dim startDate As Date, endDate As Date

    ' Создать новый лист для календаря

    Set ws = ThisWorkbook.Sheets.Add

    ws.Name = "Календарь отпусков"

    ' Заголовки

    ws.Cells(1, 1).Value = "ФИО"

    ws.Cells(1, 2).Value = "Отдел"

    For i = 1 To 365

    ws.Cells(1, i + 2).Value = DateSerial(Year(Date), 1, 1) + i - 1

    ws.Cells(1, i + 2).NumberFormat = "dd.mm"

    Next i

    ' Данные об отпусках (пример для листа "Данные")

    lastRow = ThisWorkbook.Sheets("Данные").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To lastRow

    ws.Cells(i, 1).Value = ThisWorkbook.Sheets("Данные").Cells(i, 1).Value ' ФИО

    ws.Cells(i, 2).Value = ThisWorkbook.Sheets("Данные").Cells(i, 2).Value ' Отдел

    startDate = ThisWorkbook.Sheets("Данные").Cells(i, 3).Value

    endDate = ThisWorkbook.Sheets("Данные").Cells(i, 4).Value

    ' Пометка дней отпуска

    Dim j As Long

    For j = 3 To 367

    If ws.Cells(1, j).Value >= startDate And ws.Cells(1, j).Value <= endDate Then

    ws.Cells(i, j).Interior.Color = RGB(200, 230, 200) ' Светло-зелёный

    End If

    Next j

    Next i

    ' Форматирование

    ws.Columns.AutoFit

    ws.Rows(1).Font.Bold = True

    End Sub

    Этот макрос:

    1. Создаёт новый лист с календарём на год;
    2. Переносит данные об отпусках из листа "Данные";
    3. Закрашивает дни отпусков для каждого сотрудника.
    4. Для запуска макроса нажмите Alt + F8, выберите CreateVacationCalendar и нажмите Выполнить.

      ⚠️ Внимание: Перед использованием макросов убедитесь, что в настройках Excel разрешено выполнение VBA (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов → Включить все макросы). В корпоративных сетях эти настройки могут быть заблокированы администратором.

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

      При создании графика отпусков в Excel даже опытные пользователи допускают ошибки, которые приводят к некорректным данным или неудобной визуализации. Рассмотрим самые распространённые:

      • 🗓️ Некорректный формат дат: Если даты введены как текст (например, "10.07.2026" без форматирования), Excel не сможет построить диаграмму Ганта или отсортировать данные. Решение: Выделите столбец → Формат ячеек → Дата.
      • 🔄 Неучитываемые выходные: При расчёте продолжительности отпуска формула может включать выходные дни, что искажает реальную длительность. Решение: Используйте функцию ЧИСТРАБДНИ:
        =ЧИСТРАБДНИ(B2;C2)

        где B2 и C2 — даты начала и окончания.

      • 🎨 Перегруженная визуализация: Слишком много цветов или типов диаграмм затрудняет восприятие. Решение: Ограничьтесь 3-4 цветами (например, зелёный — утверждён, жёлтый — на рассмотрении, красный — отклонён).
      • 🔒 Отсутствие защиты данных: Если файл с графиком отпусков доступен всем сотрудникам, кто-то может случайно изменить данные. Решение: Защитите лист (Рецензирование → Защитить лист) или используйте Файл → Сведения → Защита книги.

    Ещё одна частая проблема — несовпадение данных в графике и реальных отпусках. Это происходит, если исходная таблица не обновляется или формулы содержат ошибки. Чтобы избежать этого, добавьте столбец Проверка с формулой:

    =ЕСЛИ(C2-B2+1=D2;"OK";"ОШИБКА")

    где C2 и B2 — даты окончания и начала, а D2 — указанная продолжительность в днях.

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

    Как в Excel посчитать количество сотрудников в отпуске на конкретную дату?

    Используйте функцию СЧЁТЕСЛИМН (или COUNTIFS в английской версии). Пример:

    =СЧЁТЕСЛИМН($B$2:$B$100;"<="&E2;$C$2:$C$100;">="&E2)

    Где B2:B100 — даты начала отпусков, C2:C100 — даты окончания, а E2 — интересующая вас дата. Функция вернёт количество сотрудников, которые находятся в отпуске в этот день.

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

    Да, для этого можно использовать:

    1. Условное форматирование: Закрасить ячейки с датами, которые наступают через 7 дней (формула: =И($C2-TODAY()<=7;$C2-TODAY()>=0)).
    2. Макрос VBA: Написать скрипт, который отправляет email через Outlook, если до отпуска осталось менее 5 дней. Пример кода:
      
      

      Sub SendVacationReminder()

      Dim OutApp As Object, OutMail As Object

      Dim i As Long, lastRow As Long

      Set OutApp = CreateObject("Outlook.Application")

      lastRow = Cells(Rows.Count, 1).End(xlUp).Row

      For i = 2 To lastRow

      If Cells(i, 3).Value - Date <= 5 And Cells(i, 3).Value - Date >= 0 Then

      Set OutMail = OutApp.CreateItem(0)

      With OutMail

      .To = Cells(i, 5).Value ' Столбец с email

      .Subject = "Напоминание: ваш отпуск начинается " & Cells(i, 3).Value

      .Body = "Уважаемый(ая) " & Cells(i, 1).Value & "," & vbCrLf & _

      "Напоминаем, что ваш отпуск начинается " & Cells(i, 3).Value & "." & vbCrLf & _

      "Продолжительность: " & Cells(i, 4).Value & " дней."

      .Send

      End With

      End If

      Next i

      Set OutApp = Nothing

      End Sub

    Как экспортировать график отпусков из Excel в Outlook или Google Calendar?

    Есть два способа:

    1. Ручной экспорт: Скопируйте данные из Excel и вставьте в календарь как новое событие (для каждого отпуска отдельно).
    2. Автоматизация через Power Automate (Microsoft Flow):
      1. Создайте поток, который срабатывает при изменении файла Excel (сохранённого в OneDrive или SharePoint).
      2. Добавьте действие Создать событие в Outlook.
      3. Настройте mapping полей (ФИО → название события, даты начала/окончания → время события).

    Для Google Calendar можно использовать Google Apps Script с аналогичной логикой.

    Как в Excel посчитать остатки отпусков сотрудников?

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

    • Остаток на начало года (например, 28 дней);
    • Использовано — сумма дней всех утверждённых отпусков;
    • Остаток = Остаток на начало года - Использовано.

    Формула для расчёта Использовано:

    =СУММЕСЛИ($A$2:$A$100;A2;$D$2:$D$100)

    Где A2:A100 — столбец с ФИО, D2:D100 — столбец с продолжительностью отпусков.

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

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

    1. Создайте отдельную таблицу с праздничными днями (например, на листе "Праздники").
    2. Используйте функцию РАБДЕНЬ для расчёта даты окончания отпуска с учётом праздников:
      =РАБДЕНЬ(B2;C2-1;Праздники!$A$2:$A$20)

      где B2 — дата начала, C2 — продолжительность в рабочих днях, а Праздники!$A$2:$A$20 — диапазон с праздничными датами.