Почему в Excel не получается просто пронумеровать страницы как в Word
Microsoft Excel — это не текстовый редактор, а программа для работы с таблицами и данными. Поэтому здесь нет привычной функции "Вставить номер страницы", как в Microsoft Word или Google Docs. Нумерация реализуется через колонтитулы — специальные области, которые отображаются только в режиме предварительного просмотра и при печати.
Главная сложность: Excel оперирует не "страницами" в привычном понимании, а листами и печатными областями. Если ваша таблица занимает 10 экранных страниц при печати, но находится на одном листе — нумерация будет сквозной. А если данные разбросаны по нескольким листам книги — придётся настраивать каждый отдельно.
Ещё один нюанс: в новых версиях Excel 365 и Excel 2021 интерфейс настройки колонтитулов слегка изменился по сравнению с Excel 2010-2016. Мы рассмотрим оба варианта, а также альтернативные методы для сложных случаев.
Способ 1: Нумерация через стандартные колонтитулы (самый простой)
Это базовый метод, который работает во всех версиях Excel. Подходит, если вам нужно пронумеровать страницы в пределах одного листа.
- Перейдите в режим разметки страницы. Для этого нажмите
Вид → Разметка страницыили кликните по иконке лупы в правом нижнем углу окна. - Добавьте колонтитул. Дважды щёлкните по верхней или нижней части листа (там появится надпись "Щелкните, чтобы добавить верхний/нижний колонтитул").
- Вставьте номер страницы. В открывшейся вкладке
Конструктор(илиРабота с колонтитуламив старых версиях) нажмите кнопкуНомер страницы.
По умолчанию номер появится в правом верхнем углу. Чтобы изменить его положение:
- 📍 Перетащите поле с номером в левый/центральный блок колонтитула.
- 🔤 Добавьте текст рядом с номером (например, "Страница &[Page] из &[Pages]").
- 🎨 Форматируйте шрифт и размер через мини-панель инструментов.
Дважды щёлкните по колонтитулу, чтобы убедиться, что номер отображается
Проверьте предварительный просмотр (Файл → Печать)
Убедитесь, что нумерация сквозная (если несколько листов — см. Способ 3)
Сохраните файл, чтобы настройки не сбросились-->
⚠️ Внимание: Если вы добавите колонтитул на одном листе, он не появится автоматически на других. Придётся повторять процедуру для каждого листа книги или использовать макрос (см. Способ 4).
Способ 2: Нумерация "Страница X из Y" (с общим количеством)
Часто требуется указать не только текущий номер, но и общее количество страниц (например, "Страница 3 из 12"). Для этого:
- Активируйте колонтитул (двойной клик в режиме разметки).
- Вручную введите текст:
Страница(с пробелом после). - Нажмите кнопку
Номер страницына ленте — появится&[Page]. - Добавьте текст
из(с пробелами). - Нажмите кнопку
Число страниц— появится&[Pages].
Итоговый вид в колонтитуле:
Страница &[Page] из &[Pages]
Эти специальные коды &[Page] и &[Pages] Excel автоматически заменит на актуальные значения при печати. Если вы увидите именно эти коды в предварительном просмотре — значит, колонтитул не активирован (кликните по нему ещё раз).
| Код | Что отображает | Пример на печати |
|---|---|---|
&[Page] |
Текущий номер страницы | 3 |
&[Pages] |
Общее количество страниц | 12 |
&[Date] |
Текущая дата | 15.05.2026 |
&[Time] |
Текущее время | 14:30 |
&[File] |
Имя файла | Отчёт_за_апрель.xlsx |
💡 Полезный совет: Если вам нужна нумерация вида "1/12", "2/12" и т.д., используйте формат &[Page]/&[Pages] без пробелов. Excel корректно обработает дробь.
Только номер страницы (1, 2, 3...)
Страница X из Y (3 из 12)
Дробный формат (3/12)
Не использую нумерацию-->
Способ 3: Сквозная нумерация для всех листов книги
По умолчанию каждый лист Excel нумеруется отдельно: первый лист — страницы 1, 2, 3..., второй лист — снова 1, 2, 3... Чтобы сделать сквозную нумерацию (1, 2, 3... на всём документе), потребуется VBA-макрос.
Инструкция:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - В окне
Projectнайдите вашу книгу (например,VBAProject (Отчёт.xlsx)). - Дважды кликните по разделу
ThisWorkbook. - Вставьте этот код:
Private Sub Workbook_BeforePrint(Cancel As Boolean)Dim ws As Worksheet
Dim TotalPages As Long
Dim PageNum As Long
' Считаем общее количество страниц во всех листах
For Each ws In ThisWorkbook.Worksheets
TotalPages = TotalPages + ws.PageSetup.Pages.Count
Next ws
' Устанавливаем сквозную нумерацию
PageNum = 1
For Each ws In ThisWorkbook.Worksheets
With ws.PageSetup
.LeftFooter = "Страница " & PageNum & " из " & TotalPages
PageNum = PageNum + .Pages.Count
End With
Next ws
End Sub
- Закройте редактор VBA и сохраните файл как
.xlsm(с поддержкой макросов).
Теперь при каждом нажатии Печать макрос будет автоматически пересчитывать общее количество страниц и проставлять сквозную нумерацию. Обратите внимание: этот метод работает только при печати через меню Excel, а не через контекстное меню правой кнопки мыши.
Что делать, если макрос не работает?
1. Убедитесь, что файл сохранён в формате .xlsm, а не .xlsx.
2. Проверьте настройки безопасности макросов: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройка макросов → выберите "Включить все макросы" (временное решение) или "Отключить все макросы с уведомлением".
3. Если используется Excel Online, макросы не поддерживаются — нумерацию придётся настраивать вручную в десктопной версии.
Способ 4: Нумерация с помощью формул (для опытных пользователей)
Если вам нужна динамическая нумерация, которая обновляется при изменении данных (например, номер страницы в ячейке), можно использовать комбинацию функций и колонтитулов.
Алгоритм:
- Создайте на листе служебную ячейку (например,
A1) и введите туда формулу:=CEILING(ROW()/50,1)Здесь
50— количество строк на одной печатной странице (уточните это значение в настройках печати). - Перейдите в колонтитул и вставьте ссылку на эту ячейку: нажмите на поле колонтитула, затем кликните по ячейке
A1на листе. В колонтитуле появится код&[A1]. - Скройте служебную ячейку или перенесите её на отдельный лист.
Преимущество этого метода: номер будет обновляться автоматически при добавлении/удалении строк. Однако есть и минусы:
- ⚠️ Требуется точная настройка количества строк на странице.
- ⚠️ При изменении масштаба печати нумерация собьётся.
- ⚠️ Не работает для сквозной нумерации нескольких листов.
🔹 Ключевой вывод: Этот способ подходит для таблиц с фиксированной структурой, где редко меняется количество строк. Для гибких отчётов лучше использовать стандартные колонтитулы (Способ 1).
Способ 5: Нумерация вручную (если ничего не помогает)
В некоторых случаях автоматические методы не работают:
- Печать через Excel Online (нет поддержки колонтитулов).
- Экспорт в PDF через сторонние программы.
- Сложные макеты с нестандартной разметкой.
Тогда можно пронумеровать страницы вручную:
- Добавьте отдельный столбец слева от таблицы с номерами страниц.
- Используйте формулу для расчёта номера:
=INT((ROW()-1)/50)+1Где
50— количество строк на странице, аROW()-1корректирует нумерацию с единицы. - Настройте печать так, чтобы этот столбец отображался на каждой странице (в параметрах печати установите "Печатать заголовки").
⚠️ Внимание: При изменении данных или масштаба страницы придётся пересчитывать нумерацию заново. Этот метод требует постоянного контроля!
Частые ошибки и как их исправить
Даже при правильной настройке нумерация может работать некорректно. Рассмотрим типичные проблемы:
| Проблема | Причина | Решение |
|---|---|---|
| Номера не отображаются в предварительном просмотре | Колонтитул не активирован | Дважды кликните по области колонтитула, чтобы увидеть коды &[Page] |
| Нумерация начинается не с 1 | На листе есть скрытые строки или настройки печати сбиты | Проверьте параметры страницы: Разметка → Параметры страницы → Лист → Номер первой страницы |
| На всех страницах стоит "1 из 1" | Неправильно задана печатная область | Установите печатную область: выделите данные → Разметка → Печатная область → Задать |
| Номера накладываются на текст | Слишком большие поля колонтитула | Уменьшите размер шрифта в колонтитуле или настройте отступы: Параметры страницы → Поля |
Ещё одна распространённая ошибка: нумерация сбивается при печати нескольких листов. Это происходит потому, что Excel по умолчанию нумерует каждый лист отдельно. Решения:
- 🔄 Используйте макрос для сквозной нумерации (Способ 3).
- 📄 Объедините данные на одном листе (если возможно).
- 🖨️ Печатайте листы по отдельности и нумеруйте вручную в PDF.
FAQ: Ответы на частые вопросы
Можно ли пронумеровать страницы в Excel Online?
Нет, в веб-версии Excel (Excel Online) нет возможности добавлять колонтитулы. Альтернативы:
- Откройте файл в десктопной версии Excel и настройте нумерацию.
- Экспортируйте в PDF и добавьте нумерацию через редактор PDF (например, Adobe Acrobat).
- Используйте ручную нумерацию в отдельном столбце (Способ 5).
Как убрать номер страницы с первой страницы?
В Excel можно сделать так, чтобы на первой странице номер не отображался:
- Активируйте колонтитул (двойной клик в режиме разметки).
- На вкладке
Конструкторустановите галочкуОсобый колонтитул для первой страницы. - Удалите номер страницы из колонтитула первой страницы (оставив его на остальных).
Этот метод работает только для первого листа книги. Для остальных листов нумерация будет начинаться с 1.
Почему при печати нумерация идёт не по порядку (1, 3, 2, 4)?
Это происходит из-за настроек порядка страниц при печати. Excel может печатать страницы не подряд, а сначала все нечётные, затем чётные (для двусторонней печати).
Решение:
- Перейдите в
Файл → Печать. - Нажмите
Параметры страницывнизу окна. - На вкладке
Листв разделеПорядок страницвыберитеВниз, затем вправо.
Как пронумеровать страницы римскими цифрами (I, II, III)?
Excel не поддерживает римские цифры в колонтитулах напрямую, но есть обходной путь:
- Создайте на листе служебный столбец с римскими цифрами (используйте функцию
=ROMAN(1),=ROMAN(2)и т.д.). - В колонтитуле ссылайтесь на соответствующую ячейку этого столбца (например,
&[A1]). - Скройте служебный столбец перед печатью.
Минус метода: при добавлении/удалении строк придётся корректировать формулы вручную.
Можно ли сделать разную нумерацию для чётных и нечётных страниц?
Да, но только с помощью VBA. Вставьте этот код в модуль листа:
Private Sub Worksheet_BeforePrint(Cancel As Boolean)
Dim i As Integer
With Me.PageSetup
.OddAndEvenPagesHeaderFooter = True
.OddHeader.LeftHeader = "Нечётная страница: &[Page]"
.EvenHeader.LeftHeader = "Чётная страница: &[Page]"
End With
End Sub
Этот макрос будет автоматически проставлять разные заголовки для чётных и нечётных страниц при печати.