Календарь отпусков в Excel: как создать с нуля за 15 минут

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

На самом деле, даже без глубоких знаний Excel можно сделать профессиональный календарь отпусков за 15–20 минут. В этой статье мы разберём 3 рабочих способа — от простого статичного календаря до динамической таблицы с автоматическим подсчётом дней и предупреждениями о пересечениях. А ещё вы узнаете, как избежать типичной ошибки с форматом дат, из-за которой 30% пользователей получают неверные расчёты.

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

📊 Как вы ведёте учёт отпусков сейчас?
В Excel
В специализированной программе (1С, Битрикс24)
На бумаге
Не веду вообще

1. Подготовка данных: что нужно знать до создания календаря

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

Вам понадобятся:

  • 📋 Список сотрудников с ФИО, должностью и отделом (если нужно разбивать по подразделениям).
  • 📅 Производственный календарь на текущий год — чтобы учитывать официальные праздники и переносы выходных.
  • 📝 Правила компании по отпускам: минимальная/максимальная продолжительность, возможность дробления, порядок согласования.
  • 🔄 Данные об уже запланированных отпусках (если календарь создаётся не с начала года).

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

⚠️ Внимание: Если вы ведёте учёт для компании с числом сотрудников больше 50, лучше сразу разделите календарь по отделам. Excel начинает «тормозить» при обработке больших массивов данных с формулами и условным форматированием.

Также заранее решите, какой период будет охватывать ваш календарь. Оптимальные варианты:

  • 🗓️ Годовой календарь — удобно для планирования, но может быть громоздким.
  • 📊 Поквартальный — позволяет детализировать данные без перегрузки файла.
  • 🔄 «Скользящий» календарь на 3–6 месяцев вперёд с автоматическим обновлением дат.

2. Способ 1: Простой календарь отпусков (без формул)

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

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

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

  • 📌 Столбец AФИО сотрудника.
  • 📌 Столбцы B:MМесяцы года (январь–декабрь).
  • 📌 Столбец NВсего дней отпуска (для ручного подсчёта).

Шаг 2. Настройте формат ячеек

Выделите ячейки с месяцами (B1:M1) и:

  1. Нажмите правой кнопкой → Формат ячеек.
  2. Выберите категорию Дата → тип март 2026 (или аналогичный).
  3. В ячейках под месяцами (B2:M100) установите формат Общий или Текстовый — сюда вы будете вводить даты отпусков вручную.

Шаг 3. Заполните данные

В ячейках под каждым месяцем укажите даты отпусков через запятую (например, 5–12, 15–19). Для наглядности используйте условное форматирование:

  1. Выделите диапазон B2:M100.
  2. Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  3. Выберите Форматировать только ячейки, которые содержатТекстсодержащий → введите (дефис).
  4. Задайте цвет заполнения (например, светло-зелёный) и нажмите ОК.

Выделили достаточно строк для всех сотрудников|

Проверили корректность формата дат в заголовках|

Добавили условное форматирование для дат отпусков|

Сохранили файл с понятным именем (например, "Отпуска_2026.xlsx")-->

Плюсы метода: быстро, не требует знаний формул, легко редактировать.

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

⚠️ Внимание: Если в вашей компании отпуска согласуются заранее (например, на квартал), добавьте столбец Статус с вариантами: Запланирован, Согласован, Отменён. Это поможет избежать путаницы при изменении планов.

3. Способ 2: Динамический календарь с формулами

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

Шаг 1. Создайте справочник сотрудников

На отдельном листе (назовите его Сотрудники) создайте таблицу с полями:

  • 🆔 Табельный номер (или ID).
  • 👤 ФИО.
  • 🏢 Отдел.
  • 📅 Дата приёма на работу (нужно для расчёта стажа).

Шаг 2. Создайте календарь на основном листе

На листе Календарь сделайте заголовки:

  • 📌 Столбец AФИО (свяжите с данными из листа Сотрудники через ВПР или XLOOKUP).
  • 📌 Столбцы B:AFДани месяца (например, 1-янв, 2-янв и т. д.).
  • 📌 Столбец AGВсего дней отпуска.

Шаг 3. Добавьте формулы для автоматического заполнения

В ячейку B2 (первый день первого сотрудника) введите формулу:

=ЕСЛИ(И($A2<>"";B$1>=ДАТАЗНАЧ("1.01."&ГОД(СЕГОДНЯ()));B$1<=ДАТАЗНАЧ("31.12."&ГОД(СЕГОДНЯ())));"О";"")

Эта формула проверяет:

  1. Есть ли ФИО в строке ($A2<>"").
  2. Попадает ли дата в текущий год.

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

Шаг 4. Настройте условное форматирование

Выделите диапазон с датами (B2:AF100) и создайте правило:

  1. Форматировать только ячейки, которые содержатТекстравноО.
  2. Задайте зелёное заполнение.

Шаг 5. Добавьте подсчёт дней отпуска

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

=СЧЁТЕСЛИ(B2:AF2;"О")

Эта формула посчитает количество ячеек с буквой О в строке сотрудника.

4. Способ 3: Продвинутый календарь с проверкой пересечений

Этот метод подходит для HR-отделов, где важно отслеживать, чтобы в один день не уходило в отпуск слишком много людей из одного отдела. Мы добавим автоматическую проверку на пересечения и предупреждения.

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

На отдельном листе (Отпуска) сделайте таблицу с полями:

  • 🆔 ID сотрудника.
  • 📅 Дата начала.
  • 📅 Дата окончания.
  • Статус (Запланирован/Согласован).

Шаг 2. Добавьте формулу для проверки пересечений

На листе Календарь в ячейку B2 введите:

=ЕСЛИОШИБКА(ЕСЛИ(И($A2<>"";СЧЁТЕСЛИ(Отпуска!$B$2:$B$100;B$1)>1);"⚠";"");"")

Эта формула проверяет, сколько сотрудников уходит в отпуск в указанную дату. Если больше одного — выводит знак .

Шаг 3. Настройте условное форматирование для предупреждений

Создайте правило для диапазона B2:AF100:

  1. Форматировать только ячейки, которые содержатТекстсодержащий.
  2. Задайте красное заполнение или шрифт.

Шаг 4. Добавьте сводную таблицу для анализа

На отдельном листе создайте сводную таблицу на основе данных из листа Отпуска. Добавьте в неё поля:

  • 📊 Отдел (в строки).
  • 📅 Месяц (извлеките из даты начала с помощью формулы =МЕСЯЦ([@[Дата начала]])).
  • 👥 Количество сотрудников в отпуске (в значения).

Это поможет быстро увидеть, в какие месяцы запланировано слишком много отпусков, и скорректировать график.

Как автоматически выделять выходные дни?

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

=ИЛИ(ДЕНЬНЕД(B$1;2)>5;НЕТРАБДЕНЬ(B$1))

Где ДЕНЬНЕД проверяет день недели (1–7, где 6 и 7 — выходные), а НЕТРАБДЕНЬ учитывает праздники из производственного календаря.

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

Если не учесть официальные праздники, календарь отпусков будет неточным: сотрудники могут планировать отпуск на выходные дни, которые перенесены на другие даты. В Excel есть два способа решить эту проблему.

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

Создайте на отдельном листе (Праздники) список дат в формате ДД.ММ.ГГГГ. Затем используйте функцию НЕТРАБДЕНЬ для проверки:

=ЕСЛИ(НЕТРАБДЕНЬ(B$1;Праздники!$A$2:$A$20);"П";"")

Эта формула вернёт П, если дата попадает на праздничный день.

Способ 2: Автоматическое определение праздников

Если у вас Excel 365 или Excel 2021, используйте функцию РАБДЕНЬ.МЕЖД для расчёта рабочих дней между двумя датами с учётом праздников:

=РАБДЕНЬ.МЕЖД([@[Дата начала]];[@[Дата окончания]];Праздники!$A$2:$A$20)

Для старых версий Excel можно использовать ДЕНЬНЕД с корректировкой на праздники:

=[@[Дата окончания]]-[@[Дата начала]]+1-СУММПРОИЗВ(--(ДЕНЬНЕД(СТРОКА(НЕПРЯМ($A$1:ИНДЕКС($A:$A;[@[Дата окончания]]-[@[Дата начала]])));2)>5);--(НЕТРАБДЕНЬ(СТРОКА(НЕПРАВ($A$1:ИНДЕКС($A:$A;[@[Дата окончания]]-[@[Дата начала]]))))))
⚠️ Внимание: В России праздничные дни могут переноситься с выходных на будни. Например, если 1 января выпадает на субботу, выходной переносится на понедельник. Обновляйте список праздников каждый год по данным КонсультантПлюс или Гарант.

6. Автоматизация с помощью Power Query

Если вам нужно регулярно обновлять календарь (например, ежемесячно добавлять новые данные об отпусках), используйте Power Query — инструмент для импорта и преобразования данных в Excel.

Шаг 1. Импортируйте данные

Перейдите на вкладку ДанныеПолучить данныеИз других источниковПустой запрос. В открывшемся редакторе Power Query введите:

let

// Создаём список дат на год

StartDate = #date(Date.Year(DateTime.LocalNow()), 1, 1),

EndDate = #date(Date.Year(DateTime.LocalNow()), 12, 31),

DatesList = List.Dates(StartDate, Duration.Days(EndDate - StartDate) + 1, #duration(1,0,0,0)),

// Преобразуем в таблицу

TableFromList = Table.FromList(DatesList, Splitter.SplitByNothing(), {"Date"}, null, ExtraValues.Error),

// Добавляем столбцы с днём недели и месяцем

AddDayName = Table.AddColumn(TableFromList, "DayName", each Date.DayOfWeekName([Date])),

AddMonthName = Table.AddColumn(AddDayName, "MonthName", each Date.MonthName([Date])),

AddDayOfWeek = Table.AddColumn(AddMonthName, "DayOfWeek", each Date.DayOfWeek([Date]) + 1) // +1, так как неделя начинается с 0

in

AddDayOfWeek

Шаг 2. Загрузите данные в Excel

Нажмите Закрыть и загрузить → данные появятся на новом листе. Теперь вы можете связать этот список дат с вашим календарём отпусков.

Шаг 3. Автоматизируйте обновление

Каждый месяц достаточно нажать ДанныеОбновить все, и календарь обновится с учётом новых данных.

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

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

Ошибка Причина Решение
Неверный подсчёт дней отпуска Формула не учитывает праздники или выходные Используйте РАБДЕНЬ.МЕЖД или корректируйте результат вручную
Пересечения отпусков не отображаются Неправильный диапазон в формуле СЧЁТЕСЛИ Проверьте ссылки на лист с данными об отпусках
Дата отображается как число (например, 44927) Неверный формат ячейки Выделите ячейку → Формат ячеек → выберите Дата
Файл тормозит при открытии Слишком много формул или условного форматирования Разбейте календарь на несколько листов (по отделам или кварталам)
Не обновляются данные после изменений Отключён автоматический пересчёт Перейдите в ФормулыПараметры вычисленийАвтоматически

Ещё одна частая проблема — ошибки при копировании формул. Например, если вы протянете формулу с относительными ссылками (A1), она «съедет» при копировании в другую ячейку. Чтобы этого избежать, используйте абсолютные ссылки ($A$1) для фиксированных диапазонов (например, для списка праздников).

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

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

8. Готовые шаблоны и альтернативы Excel

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

Шаблоны для Excel:

Альтернативы Excel:

  • 📊 Google Sheets — удобно для командной работы, есть встроенные календари.
  • 📅 Trello или Asana — если нужен визуальный трекер отпусков.
  • 💼 1С:Зарплата и Управление Персоналом — для полной автоматизации учёта.

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

  • 🔧 Kutools for Excel — позволяет быстро создавать календари и диаграммы.
  • 🔧 Ablebits — удобные инструменты для работы с датами.

FAQ: Частые вопросы по календарю отпусков в Excel

🔹 Как сделать так, чтобы календарь автоматически обновлялся каждый год?

Используйте формулы с функцией ГОД(СЕГОДНЯ()) вместо жёстко прописанного года. Например, для создания списка дат на текущий год:

=ДАТА(ГОД(СЕГОДНЯ());1;1)

Для следующего года замените СЕГОДНЯ() на ДАТА(ГОД(СЕГОДНЯ())+1;1;1).

🔹 Можно ли сделать календарь с учётом стажа сотрудника?

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

=ЕСЛИ(ГОД(СЕГОДНЯ())-ГОД([@[Дата приёма]])>=1;28;0)

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

=ОКРУГЛВНИЗ((СЕГОДНЯ()-[@[Дата приёма]])/365;0)*2,8
🔹 Как экспортировать календарь в PDF для печати?

Перейдите в ФайлЭкспортСоздать PDF/XPS. Перед этим:

  • Настройте Параметры страницы (вкладка Разметка страницы) — установите ориентацию Альбомная.
  • Убедитесь, что все столбцы помещаются на страницу (при необходимости уменьшите масштаб).
  • Добавьте заголовки строк и столбцов для печати (Разметка страницыПечать заголовков).
🔹 Как посчитать количество сотрудников в отпуске по дням?

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

=СЧЁТЕСЛИ(Отпуска!$B$2:$B$100;A2)

Где Отпуска!$B$2:$B$100 — диапазон с датами начала отпусков, а A2 — текущая дата в вашей сводной таблице.

Для подсчёта по отделам добавьте условие:

=СЧЁТЕСЛИМН(Отпуска!$B$2:$B$100;A2;Отпуска!$D$2:$D$100;B2)

Где Отпуска!$D$2:$D$100 — столбец с отделами, а B2 — текущий отдел.

🔹 Можно ли интегрировать календарь с Outlook или Google Calendar?

Да, но для этого потребуется использовать Power Automate (для Outlook) или Apps Script (для Google Calendar). Альтернативный вариант — экспортировать данные в формат .ics и импортировать в календарь. Для этого:

  1. Сохраните данные об отпусках в формате CSV.
  2. Используйте онлайн-конвертер (например, ConvertCSV) для преобразования в .ics.
  3. Импортируйте файл в ваш календарь.

Обратите внимание: автоматическая синхронизация в этом случае не настраивается — при изменении данных в Excel потребуется повторный экспорт.