Ведение учёта отпусков сотрудников — задача, с которой сталкивается каждый HR-специалист или руководитель отдела. Excel остаётся одним из самых гибких инструментов для этой цели: он не требует покупки дорогостоящего ПО, позволяет настраивать логику под нужды компании и интегрируется с другими системами. Однако многие пользователи теряются, пытаясь создать календарь с нуля: то формулы не срабатывают, то даты отображаются криво, то условное форматирование «ломает» весь дизайн.
На самом деле, даже без глубоких знаний Excel можно сделать профессиональный календарь отпусков за 15–20 минут. В этой статье мы разберём 3 рабочих способа — от простого статичного календаря до динамической таблицы с автоматическим подсчётом дней и предупреждениями о пересечениях. А ещё вы узнаете, как избежать типичной ошибки с форматом дат, из-за которой 30% пользователей получают неверные расчёты.
Если вам нужен готовый шаблон — скачайте его в конце статьи. Но мы рекомендуем пройти все этапы самостоятельно: так вы сможете адаптировать календарь под специфику вашей компании (например, добавить учёт больничных или выходных по графику).
1. Подготовка данных: что нужно знать до создания календаря
Прежде чем приступать к созданию таблицы, соберите исходную информацию. Без неё даже самый продвинутый календарь будет бесполезен.
Вам понадобятся:
- 📋 Список сотрудников с ФИО, должностью и отделом (если нужно разбивать по подразделениям).
- 📅 Производственный календарь на текущий год — чтобы учитывать официальные праздники и переносы выходных.
- 📝 Правила компании по отпускам: минимальная/максимальная продолжительность, возможность дробления, порядок согласования.
- 🔄 Данные об уже запланированных отпусках (если календарь создаётся не с начала года).
Обратите внимание: если в вашей компании действует график сменности (например, 2 через 2), то стандартный календарь не подойдёт. В этом случае потребуется добавить столбец с указанием рабочих дней сотрудника или создать отдельные листы для каждой смены.
⚠️ Внимание: Если вы ведёте учёт для компании с числом сотрудников больше 50, лучше сразу разделите календарь по отделам. Excel начинает «тормозить» при обработке больших массивов данных с формулами и условным форматированием.
Также заранее решите, какой период будет охватывать ваш календарь. Оптимальные варианты:
- 🗓️ Годовой календарь — удобно для планирования, но может быть громоздким.
- 📊 Поквартальный — позволяет детализировать данные без перегрузки файла.
- 🔄 «Скользящий» календарь на 3–6 месяцев вперёд с автоматическим обновлением дат.
2. Способ 1: Простой календарь отпусков (без формул)
Этот метод подойдёт для небольших команд (до 15 человек) или для тех, кто только начинает осваивать Excel. Здесь не используется сложных формул — только базовое форматирование и ручной ввод данных.
Шаг 1. Создайте заготовку таблицы
Откройте новый лист в Excel и создайте заголовки:
- 📌 Столбец
A— ФИО сотрудника. - 📌 Столбцы
B:M— Месяцы года (январь–декабрь). - 📌 Столбец
N— Всего дней отпуска (для ручного подсчёта).
Шаг 2. Настройте формат ячеек
Выделите ячейки с месяцами (B1:M1) и:
- Нажмите правой кнопкой →
Формат ячеек. - Выберите категорию
Дата→ типмарт 2026(или аналогичный). - В ячейках под месяцами (
B2:M100) установите форматОбщийилиТекстовый— сюда вы будете вводить даты отпусков вручную.
Шаг 3. Заполните данные
В ячейках под каждым месяцем укажите даты отпусков через запятую (например, 5–12, 15–19). Для наглядности используйте условное форматирование:
- Выделите диапазон
B2:M100. - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Форматировать только ячейки, которые содержат→Текст→содержащий→ введите–(дефис). - Задайте цвет заполнения (например, светло-зелёный) и нажмите
ОК.
Выделили достаточно строк для всех сотрудников|
Проверили корректность формата дат в заголовках|
Добавили условное форматирование для дат отпусков|
Сохранили файл с понятным именем (например, "Отпуска_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."&ГОД(СЕГОДНЯ())));"О";"")
Эта формула проверяет:
- Есть ли ФИО в строке (
$A2<>""). - Попадает ли дата в текущий год.
Если оба условия выполнены, ячейка заполняется буквой О (отпуск). Далее скопируйте формулу на весь диапазон календаря.
Шаг 4. Настройте условное форматирование
Выделите диапазон с датами (B2:AF100) и создайте правило:
Форматировать только ячейки, которые содержат→Текст→равно→О.- Задайте зелёное заполнение.
Шаг 5. Добавьте подсчёт дней отпуска
В ячейку AG2 введите:
=СЧЁТЕСЛИ(B2:AF2;"О")
Эта формула посчитает количество ячеек с буквой О в строке сотрудника.
4. Способ 3: Продвинутый календарь с проверкой пересечений
Этот метод подходит для HR-отделов, где важно отслеживать, чтобы в один день не уходило в отпуск слишком много людей из одного отдела. Мы добавим автоматическую проверку на пересечения и предупреждения.
Шаг 1. Создайте таблицу с данными об отпусках
На отдельном листе (Отпуска) сделайте таблицу с полями:
- 🆔
ID сотрудника. - 📅
Дата начала. - 📅
Дата окончания. - ✅
Статус(Запланирован/Согласован).
Шаг 2. Добавьте формулу для проверки пересечений
На листе Календарь в ячейку B2 введите:
=ЕСЛИОШИБКА(ЕСЛИ(И($A2<>"";СЧЁТЕСЛИ(Отпуска!$B$2:$B$100;B$1)>1);"⚠";"");"")
Эта формула проверяет, сколько сотрудников уходит в отпуск в указанную дату. Если больше одного — выводит знак ⚠.
Шаг 3. Настройте условное форматирование для предупреждений
Создайте правило для диапазона B2:AF100:
Форматировать только ячейки, которые содержат→Текст→содержащий→⚠.- Задайте красное заполнение или шрифт.
Шаг 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 и руководителями отделов), защитите важные ячейки от изменений:
- Выделите ячейки, которые можно редактировать (например, даты отпусков).
- Нажмите правой кнопкой →
Формат ячеек→ вкладкаЗащита→ снимите галочку сЗащищаемая ячейка. - Перейдите на вкладку
Рецензирование→Защитить лист.
8. Готовые шаблоны и альтернативы Excel
Если у вас нет времени создавать календарь с нуля, воспользуйтесь готовыми решениями:
Шаблоны для Excel:
- 📥 Официальные шаблоны Microsoft — бесплатные, но с ограниченной функциональностью.
- 📥 Smartsheet — облачные шаблоны с совместным доступом.
Альтернативы 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 и импортировать в календарь. Для этого:
- Сохраните данные об отпусках в формате
CSV. - Используйте онлайн-конвертер (например, ConvertCSV) для преобразования в
.ics. - Импортируйте файл в ваш календарь.
Обратите внимание: автоматическая синхронизация в этом случае не настраивается — при изменении данных в Excel потребуется повторный экспорт.