Как составить расписание уроков в школе в Excel: от простого к автоматизированному

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

Многие школы до сих пор ведут расписание в тетрадях или печатных бланках, что приводит к путанице при изменениях. Переход на электронный формат экономит до 40% времени на составление и корректировку расписания (по данным опроса директоров школ в 2023 году). При этом не требуется покупать специализированное ПО — достаточно базовых знаний Excel и нашего руководства.

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

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

  • 📚 Для учеников — упор на наглядность (цветовые маркировки по предметам, крупный шрифт)
  • 👩‍🏫 Для учителей — акцент на распределении нагрузки (проверка «окон», равномерность уроков по дням)
  • 🏫 Для администрации — контроль загрузки кабинетов, соблюдение СанПиН
📊 Для кого вы составляете расписание в Excel?
Для учеников
Для учителей
Для администрации школы
Для личного использования

1. Подготовка базовой структуры таблицы

Первый шаг — создание «скелета» расписания. Откройте новый файл Excel и настройте рабочую область. Мы рекомендуем использовать отдельные листы для разных целей:

  • 📄 Расписание — основная таблица с уроками
  • 📄 Учителя — список преподавателей и их нагрузка
  • 📄 Кабинеты — перечень аудиторий и их оснащение
  • 📄 Предметы — учебный план с количеством часов по каждому предмету

На листе Расписание создайте заголовки:

  1. В строке 1 укажите дни недели (например, с B1:G1 — «Понедельник», «Вторник» и т.д.)
  2. В столбце A (начиная с A2) пронумеруйте уроки (1, 2, 3...) с указанием времени (например, «1. 08:30–09:15»)
  3. Объедините ячейки для названий дней: выделите B1:C1, нажмите Главная → Объединить и поместить в центре

Важно: оставьте запас строк снизу (хотя бы 50) — это пригодится для формул и дополнительных данных. Ширину столбцов установите не менее 20 символов, чтобы вмещались длинные названия предметов.

2. Заполнение расписания: ручной ввод vs автоматизация

На этом этапе у вас есть два пути: вводить данные вручную или настроить полуавтоматическое заполнение. Ручной метод подходит для небольших школ (до 20 классов), но уже при 30+ классах становится неэффективным.

Для ручного заполнения:

  • 🔹 В ячейку B2 введите название предмета (например, «Математика»)
  • 🔹 В скобках укажите учителя и кабинет: Математика (Иванова А.П., к.204)
  • 🔹 Скопируйте формат на все ячейки таблицы

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

ФИОПредметМакс. нагрузка (часов/неделю)Примечание
Иванова А.П.Математика24Стаж 15 лет
Петров С.В.Физика18Классное руководство 10А
Сидорова Е.К.Русский язык30Заместитель директора

Затем на листе Расписание в ячейке B2 можно использовать выпадающий список:

  1. Выделите B2:G20 (или весь диапазон расписания)
  2. Перейдите в Данные → Проверка данных → Тип данных: Список
  3. В поле Источник укажите: =Учителя!$A$2:$A$100 (диапазон с ФИО учителей)
Как сделать зависимые выпадающие списки?

1. Сначала создайте список учителей (как в примере выше). 2. На листе "Предметы" сделайте таблицу с соответствием учитель-предмет. 3. В проверке данных для ячейки предмета используйте формулу =ДВССЫЛ("Предметы!B" & ПОИСКПОЗ($B2; Учителя!$A$2:$A$100; 0)), где $B2 — ячейка с ФИО учителя.

3. Условное форматирование для наглядности

Чёрно-белое расписание сложно воспринимать на глаз. Условное форматирование поможет выделить:

  • 🎨 Предметы разными цветами (математика — синий, русский — красный и т.д.)
  • ⚠️ Пересечения уроков у одного учителя (красная заливка)
  • 🔄 «Окна» в расписании (жёлтая заливка)

Для цветовой маркировки предметов:

  1. Выделите диапазон расписания (например, B2:G20)
  2. Перейдите в Главная → Условное форматирование → Создать правило
  3. Выберите Форматировать только ячейки, которые содержат
  4. В поле «Форматировать только ячейки с» укажите: Текст → содержащий → Математика
  5. Нажмите Формат, выберите синий цвет заливки
  6. Повторите для других предметов

Для проверки пересечений уроков у учителей потребуется формула. Предположим, что ФИО учителя в ячейке расписания указано в формате Предмет (ФИО, кабинет). Тогда:

  1. Создайте правило условного форматирования для диапазона B2:G20
  2. Выберите Использовать формулу для определения форматируемых ячеек
  3. Введите формулу:
    =ИЛИ(СЧЁТЕСЛИ($B$2:$G$20; "" & ПСТР(B2; ПОИСК("("; B2)+1; ПОИСК(";"; B2)-ПОИСК("("; B2)-1) & "")>1)
    Эта формула ищет повторяющиеся ФИО учителей в расписании.
  4. Установите красный цвет заливки для ячеек, где формула возвращает ИСТИНА

4. Автоматическая проверка ошибок

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

Проверка нагрузки учителей:

  • На листе Учителя добавьте столбец Фактическая нагрузка
  • В ячейку D2 (рядом с ФИО первого учителя) введите формулу:
    =СЧЁТЕСЛИ(Расписание!$B$2:$G$20; "" & A2 & "")
    Эта формула считает, сколько раз ФИО учителя встречается в расписании.
  • Скопируйте формулу на всех учителей
  • Добавьте условное форматирование: если Фактическая нагрузка > Макс. нагрузка, заливка красная

Проверка «окон» в расписании:

⚠️ Внимание: СанПиН 2.4.2.2821-10 запрещает «окна» продолжительностью более 90 минут для учеников 1–4 классов и более 2 академических часов для 5–11 классов. В Excel это можно отследить с помощью функции ЕСЛИОШИБКА.

Для поиска «окон» у классов:

  1. На отдельном листе создайте таблицу с классами (столбец A) и днями недели (строка 1)
  2. В ячейку B2 введите формулу:
    =ЕСЛИ(И(Расписание!B2<>""; Расписание!B3=""; СЧЁТЕСЛИ(Расписание!B4:B20; "<>"")); "Окно!"; "")
    Формула проверяет, есть ли урок, за которым следует пустая ячейка, а затем снова урок.
  3. Растяните формулу на весь диапазон

5. Динамические элементы: выпадающие списки и гиперссылки

Сделайте расписание интерактивным с помощью динамических элементов. Это упростит навигацию и редактирование.

Выпадающие списки для предметов:

  • 📋 На листе Предметы создайте список всех дисциплин (столбец A)
  • 🔄 На листе Расписание выделите диапазон для предметов и настройте проверку данных со ссылкой на Предметы!$A$2:$A$50
  • 🔗 Добавьте второй выпадающий список для учителей, который будет зависимым от выбранного предмета (см. спойлер в разделе 2)

Гиперссылки для быстрой навигации:

  • 📌 Вставьте гиперссылку на лист Учителя в ячейку с ФИО: выделите ячейку → Вставка → Гиперссылка → укажите Место в документе → Лист "Учителя"
  • 📊 Добавьте кнопку «Печать» с макросом (если используете Excel с поддержкой VBA):
    Sub ПечатьРасписания()
    

    ActiveSheet.PageSetup.PrintArea = "$A$1:$G$20"

    ActiveSheet.PrintOut

    End Sub

    Этот макрос печатает только диапазон с расписанием.

Для удобства добавьте кнопки переключения между неделями (если у вас двухнедельное расписание):

  • 🔄 Создайте два листа: Неделя1 и Неделя2 с одинаковой структурой
  • 📌 На каждом листе добавьте кнопку (вкладка Разработчик → Вставить → Кнопка) с макросом перехода на другой лист

Убраны все пересечения уроков у учителей|Проверена нагрузка (не превышает максимальную)|Отсутствуют "окна" длительностью >2 часов|Цветовая маркировка соответствует легенде|Указаны все кабинеты и ФИО учителей-->

6. Экспорт и печать готового расписания

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

Подготовка к печати:

  • 🖼️ Установите Параметры страницы → Размер: А3 (для большого расписания) или А4 (для классного варианта)
  • 🔍 Включите Печать → Показать поля и отрегулируйте отступы так, чтобы расписание помещалось на один лист
  • 📌 Добавьте колонтитулы с названием школы и учебным годом: Вставка → Колонтитулы

Экспорт в другие форматы:

  • 📱 Для онлайн-доски: сохраните как PDF (Файл → Экспорт → Создать PDF/XPS) и загрузите в систему дистанционного обучения
  • 🌐 Для сайта школы: экспортируйте как веб-страницу (Файл → Экспорт → Изменить тип файла → Веб-страница), но учтите, что формулы не сохранятся
  • 📧 Для рассылки: скопируйте диапазон расписания и вставьте как картинку в Word или email (правая кнопка → Специальная вставка → Картинка)

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

  1. Добавьте столбец Класс слева от расписания (например, в A2:A20 укажите «5А», «5Б» и т.д.)
  2. Примените фильтр (Данные → Фильтр) и выберите нужный класс
  3. Напечатайте отфильтрованные данные
⚠️ Внимание: При печати расписания с условным форматированием цвета сохранятся только в формате PDF. При печати напрямую на принтер проверьте настройку Печать → Качество: Черновик — она может игнорировать цвета.

7. Продвинутые приёмы: формулы и макросы

Для крупных школ (20+ классов) ручное составление расписания занимает десятки часов. Автоматизируйте процесс с помощью формул и скриптов.

Автоматическое распределение уроков по нагрузке:

  • 📊 На листе Предметы укажите недельную нагрузку по каждому предмету для класса (например, «Математика — 5 часов»)
  • 🔄 Используйте функцию СЛЧИС для случайного распределения уроков по дням:
    =ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$10; НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ($B$1:B1; $A$2:$A$10)<ВПР($A$2:$A$10; Нагрузка!A:B; 2); СТРОКА($A$2:$A$10)-1)); СЛУЧМЕЖДУ(1; СЧЁТЕСЛИ(Нагрузка!B:B; ">0")))); "")
    Эта формула массива распределяет предметы с учётом недельной нагрузки.

Макрос для генерации расписания: если вы владеете VBA, этот код создаст базовую структуру расписания:

Sub GenerateSchedule()

Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets("Расписание")

' Заголовки дней недели

ws.Range("B1:G1").Value = Array("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота")

' Номера уроков

For i = 2 To 10

ws.Cells(i, 1).Value = "Урок " & i - 1

Next i

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

ws.Range("A1:G10").Borders.Weight = xlThin

ws.Columns("A:G").AutoFit

End Sub

Интеграция с внешними данными: если у вас есть учебный план в формате XML или CSV, импортируйте его в Excel:

  1. Перейдите в Данные → Получить данные → Из файла → Из текстового/CSV
  2. Выберите файл с учебным планом
  3. Настройте разделители и типы данных
  4. Загрузите данные на новый лист и свяжите с основным расписанием через ВПР или ИНДЕКС/ПОИСКПОЗ

8. Облачные альтернативы: Google Sheets и совместная работа

Если в вашей школе несколько человек работают над расписанием, Google Sheets станет более удобным решением благодаря возможности одновременного редактирования. Перенести расписание из Excel в Google Sheets просто:

  • 📤 Загрузите файл .xlsx в Google Drive
  • 🔄 Откройте его через Google Sheets (правая кнопка → Открыть с помощью → Google Таблицы)
  • 🔗 Все формулы и условное форматирование сохранятся автоматически

Преимущества Google Sheets для расписания:

  • 🌐 Доступ с любого устройства — редактируйте с телефона или планшета
  • 🔄 История изменений — откат к любой версии за последние 30 дней (Файл → История версий)
  • 📊 Встроенные опросы — отправляйте учителям ссылку на таблицу для подтверждения их расписания
  • 🤖 Скрипты Google Apps Script — автоматизируйте рассылку расписания по email

Пример скрипта для рассылки: этот код отправит расписание на email всем учителям:

function sendSchedule() {

const sheet = SpreadsheetApp.getActiveSpreadsheet();

const teachers = sheet.getSheetByName("Учителя").getRange("A2:D100").getValues();

teachers.forEach(([name, , , email]) => {

if (email) {

const schedule = getTeacherSchedule(name); // Функция для извлечения расписания учителя

MailApp.sendEmail(email, "Ваше расписание на новый учебный год", schedule);

}

});

}

⚠️ Внимание: В Google Sheets некоторые формулы массива из Excel не работают. Замените СЧЁТЕСЛИМН на COUNTIFS, а ЕСЛИОШИБКА на IFERROR.

FAQ: Частые вопросы по составлению расписания в Excel

❓ Как учесть «окна» для учителей, если они ведут в разных классах?

Создайте отдельный лист Учителя_Расписание, где в строках будут ФИО преподавателей, а в столбцах — дни и номера уроков. Используйте формулу:

=ЕСЛИ(И(Расписание!B2<>""; ПОИСК($A2; Расписание!B2)>0); "Занят"; "")

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

❓ Можно ли сделать расписание с чередованием недель (например, для 2–4 классов)?

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

  1. Создайте два отдельных листа: Неделя1 и Неделя2.
  2. На листе Итоговое используйте формулу:
    =ЕСЛИ($A1="Неделя1"; Неделя1!B2; Неделя2!B2)

    где $A1 — ячейка с указанием текущей недели.

  3. Добавьте выпадающий список в A1 со значениями «Неделя1» и «Неделя2».
❓ Как экспортировать расписание в формат, который можно вставить на сайт школы?

Лучше всего использовать HTML-экспорт:

  1. Скопируйте диапазон расписания.
  2. Вставьте его в Google Sheets.
  3. Перейдите в Файл → Опубликовать в сети и выберите формат HTML.
  4. Скопируйте полученный код и вставьте на сайт через виджет iframe.

Альтернатива: сохраните как PDF и загрузите на сайт как изображение.

❓ Какие есть бесплатные шаблоны расписания для Excel?

Готовые шаблоны можно скачать:

  • 🔗 На сайте Microsoft Office Templates (поиск по запросу «school schedule»)
  • 🔗 В Google Sheets (шаблонная галерея → «Расписание»)
  • 🔗 На российских образовательных порталах (например, НСПортал)

При использовании шаблонов проверьте:

  • 🔹 Соответствие количества уроков вашему учебному плану
  • 🔹 Наличие формул для проверки ошибок
  • 🔹 Возможность адаптации под вашу школу (количество классов, учителей)
❓ Как защитить расписание от случайных изменений?

Используйте защиту листа:

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

Для Google Sheets:

  1. Откройте Данные → Защищённые листы и диапазоны.
  2. Выберите диапазон для защиты и установите разрешения (например, только для редактирования определенным пользователям).