Как проставить номер страницы в Excel: инструкция с картинками и лайфхаками

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

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

1. Нумерация страниц при печати (через колонтитулы)

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

  1. Перейдите в режим разметки страницы: откройте вкладку Вид → выберите Разметка страницы. Альтернативно можно нажать Ctrl+F2 для предварительного просмотра.
  2. Добавьте колонтитул: дважды кликните по верхней или нижней части листа (там, где написано "Щелкните, чтобы добавить верхний колонтитул").
  3. Вставьте номер страницы: в панели Конструктор колонтитулов нажмите на кнопку Номер страницы (значок с цифрой "#").

Номер появится в виде кода &[Page]. Его можно перемещать мышью внутри колонтитула, добавлять текст (например, "Страница &[Page] из &[Pages]") или форматировать через панель инструментов.

Настройка формата номера

По умолчанию Excel нумерует страницы арабскими цифрами (1, 2, 3...). Чтобы изменить формат:

  • 🔢 Римские цифры: вручную замените &[Page] на формулу вида =ROMAN(1) (но это сработает только для первой страницы; для динамического обновления нужен макрос).
  • 📝 Префиксы: добавьте текст перед кодом, например, "Доклад - Страница &[Page]".
  • 🔄 Сброс нумерации: если нужно начать с единицы на каждом листе, перейдите в Параметры страницы → Лист → Нумерация страниц и выберите Начать с.
Почему номера страниц дублируются при печати?

Это происходит, если в настройках печати включен параметр "Печатать на каждой странице" для колонтитулов. Отключите его в Параметры страницы → Колонтитулы → снимите галочку с "Разный колонтитул для первой страницы".

2. Нумерация листов в книге Excel

Если вам нужно пронумеровать не страницы при печати, а листы книги (например, "Лист1", "Лист2" и т.д.), используйте один из этих методов:

Способ 1: Ручная нумерация

Простейший вариант — переименовать листы вручную:

  1. Дважды кликните по названию листа (например, "Лист1").
  2. Введите новый текст, например, "01. Отчёт по продажам".
  3. Повторите для всех листов.

Способ 2: Автоматическая нумерация через VBA

Для больших книг (10+ листов) удобнее использовать макрос:

Sub NumberSheets()

Dim i As Integer

For i = 1 To ThisWorkbook.Sheets.Count

ThisWorkbook.Sheets(i).Name = Right("00" & i, 2) & ". " & ThisWorkbook.Sheets(i).Name

Next i

End Sub

Этот код добавит порядковый номер к каждому листу, сохраняя оригинальное название. Например, "Лист1" станет "01. Лист1".

Проверьте, что в названиях листов нет запрещённых символов (/, \, *, ?, :)

Сохраните резервную копию книги

Убедитесь, что макросы разрешены (Файл → Параметры → Центр управления безопасностью)

Закройте все другие книги Excel во избежание конфликтов-->

⚠️ Внимание: Если в книге есть листы с одинаковыми названиями (например, два "Лист1"), макрос завершится с ошибкой. Предварительно переименуйте дублирующиеся листы.

3. Нумерация строк с учётом разбивки на страницы

При печати больших таблиц Excel автоматически разбивает данные на несколько страниц. Чтобы пронумеровать строки сквозной нумерацией (например, 1, 2, 3... на всех страницах), используйте простую формулу:

  1. В ячейку A1 введите =ROW().
  2. Протяните формулу вниз до конца таблицы.

Если нужна нумерация с учётом разбивки (на каждой странице начинается с 1), формула усложняется:

=ROW()-MIN(ROW())+1

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

=SUBTOTAL(3; $A$2:A2)
Тип нумерации Формула Пример результата Подходит для фильтров?
Сквозная =ROW() 1, 2, 3, ..., 100 Нет
По страницам (сброс на 1) =ROW()-MIN(ROW())+1 1, 2, 3 | 1, 2, 3 (на след. странице) Нет
С учётом фильтра =SUBTOTAL(3; $A$2:A2) 1, 2, 4 (если 3-я строка скрыта) Да

4. Нумерация с помощью макросов (для опытных пользователей)

Если стандартные методы не подходят, можно автоматизировать нумерацию через VBA. Например, этот макрос добавляет номера страниц в ячейку A1 каждого листа:

Sub AddPageNumbers()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.PageSetup.CenterFooter = "&""Arial,Большой""&12 Страница &[Page] из &[Pages]"

ws.Range("A1").Value = "Лист " & ws.Index & " из " & ThisWorkbook.Sheets.Count

Next ws

End Sub

А этот код нумерует строки с учётом разбивки на страницы при печати (требуется предварительная настройка областей печати):

Sub NumberRowsByPage()

Dim rng As Range, cell As Range

Dim pageNum As Integer, rowsPerPage As Integer

rowsPerPage = 50 ' Укажите количество строк на странице

Set rng = ActiveSheet.UsedRange

pageNum = 1

For Each cell In rng.Columns(1).Cells

If (cell.Row - 1) Mod rowsPerPage = 0 Then

cell.Offset(0, -1).Value = "Страница " & pageNum

pageNum = pageNum + 1

End If

Next cell

End Sub

⚠️ Внимание: Макросы могут конфликтовать с защищёнными листами. Перед запуском снимите защиту (Рецензирование → Снять защиту листа) и сохраните резервную копию книги.
📊 Какой способ нумерации вы используете чаще?
Колонтитулы для печати
Формулы в ячейках
Макросы VBA
Ручная нумерация

5. Типичные ошибки и их решения

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

  • 🔍 Номера не отображаются в предварительном просмотре: проверьте, включена ли галочка "Колонтитулы" в Параметры страницы → Лист. Также убедитесь, что масштаб не менее 60%.
  • 🔄 Номера сбиваются после добавления строк: если используете формулы вида =ROW(), они автоматически обновятся. Для статической нумерации преобразуйте формулы в значения (Копировать → Специальная вставка → Значения).
  • 📄 На первой странице номер не печатается: отключите параметр "Разный колонтитул для первой страницы" в настройках колонтитулов.
  • 🖨️ При печати номера накладываются на текст: уменьшите размер шрифта в колонтитуле или добавьте отступ через параметр "Поля" (Параметры страницы → Поля).

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

  1. Выделите диапазон для печати (например, A1:D100).
  2. Перейдите в Разметка страницы → Область печати → Задать.
  3. Убедитесь, что в Параметры страницы → Страница выбрано "по разделам".

6. Альтернативные методы нумерации

Если стандартные способы не подходят, рассмотрите эти варианты:

Нумерация через Power Query

Для больших таблиц (100 000+ строк) удобно использовать Power Query:

  1. Выделите данные и нажмите Данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец индекса: Добавить столбец → Индексный столбец.
  3. Настройте начало нумерации (0 или 1) и шаг.
  4. Загрузите данные обратно в Excel.

Нумерация с помощью условного форматирования

Если нужно выделить номера страниц цветом (например, для чётных/нечётных), используйте условное форматирование:

  1. Выделите столбец с номерами.
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите "Форматировать только ячейки, которые содержат".
  4. Установите правило =MOD(ROW();2)=0 для чётных строк и назначьте цвет.

Нумерация в сводных таблицах

В сводных таблицах стандартная нумерация строк (=ROW()) не работает. Вместо этого:

  1. Добавьте в исходные данные столбец с порядковыми номерами.
  2. Обновите сводную таблицу (Анализ → Обновить).
  3. Перетащите столбец с номерами в область "Строки".

7. Нумерация в Excel Online и мобильной версии

В веб-версии Excel Online и мобильных приложениях (Android/iOS) функционал нумерации ограничен. Вот что доступно:

  • 🌐 Excel Online:
    • Колонтитулы поддерживаются, но настройка доступна только через Файл → Печать → Параметры страницы.
    • Нет возможности добавлять макросы или сложные формулы.
    • Нумерация листов возможна только вручную.
  • 📱 Мобильное приложение:
    • На Android/iOS колонтитулы настраиваются через Печать → Параметры → Колонтитулы.
    • Формулы =ROW() работают, но могут медленно обновляться на больших таблицах.
    • Макросы недоступны.

Для полноценной нумерации рекомендуем использовать десктопную версию Excel. Если это невозможно, попробуйте такие обходные пути:

  • 📎 Для печати: настройте колонтитулы на ПК, сохраните файл и откройте его в мобильной версии.
  • 🔢 Для листов: переименуйте их вручную или используйте Google Таблицы, где есть скрипты для автоматической нумерации.

FAQ: Частые вопросы о нумерации в Excel

Можно ли пронумеровать страницы римскими цифрами?

В колонтитулах напрямую — нет, но можно использовать обходной путь:

  1. Добавьте в колонтитул код &[Page].
  2. После печати замените арабские цифры на римские вручную или через Найти и заменить (Ctrl+H).

Для динамического обновления нужен макрос:

Sub RomanPageNumbers()

Dim i As Integer

For i = 1 To ActiveSheet.PageSetup.Pages.Count

ActiveSheet.PageSetup.RightFooter = "Страница " & GetRoman(i)

Next i

End Sub

Function GetRoman(num As Integer) As String

' Функция преобразования арабских цифр в римские

Dim roman As String, x As Integer, v As Integer

roman = ""

x = num

Do While x >= 1000

roman = roman & "M"

x = x - 1000

Loop

' ... (продолжение функции для других разрядов)

GetRoman = roman

End Function

Почему при печати номера страниц повторяются?

Это происходит из-за:

  1. Неправильной области печати: Excel разбивает данные на страницы по алгоритму, который может не совпадать с вашими ожиданиями. Задайте область печати вручную (Разметка страницы → Область печати → Задать).
  2. Дублирующихся колонтитулов: проверьте, что в настройках колонтитулов не включён параметр "Разный колонтитул для первой страницы".
  3. Ошибок в формулах: если используете =ROW() для нумерации строк, убедитесь, что формула протянута на все данные.

Чтобы диагностировать проблему, откройте предварительный просмотр (Ctrl+F2) и посмотрите, как Excel разбивает таблицу на страницы (синие пунктирные линии).

Как пронумеровать страницы в книге с 50 листами?

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

Sub NumberAllSheets()

Dim ws As Worksheet, i As Integer

i = 1

For Each ws In ThisWorkbook.Worksheets

ws.PageSetup.CenterFooter = "Страница " & i & " из " & ThisWorkbook.Sheets.Count

i = i + 1

Next ws

End Sub

Этот код проставит в колонтитуле каждого листа его порядковый номер и общее количество листов. Если нужна нумерация внутри листа (для печати), добавьте в колонтитул код &[Page].

Можно ли сделать нумерацию вида "1/10, 2/10..." (текущая/общая)?

Да, для этого в колонтитуле используйте комбинацию кодов:

  1. Дважды кликните по колонтитулу.
  2. Введите текст: Страница &[Page] из &[Pages].
  3. Отформатируйте шрифт и выравнивание по центру.

Коды &[Page] и &[Pages] автоматически заменятся на текущий номер страницы и общее количество страниц при печати.

Как убрать номер с первой страницы, но оставить на остальных?

В Excel есть встроенная настройка для этого:

  1. Перейдите в Разметка страницы → Колонтитулы.
  2. Поставьте галочку "Разный колонтитул для первой страницы".
  3. Удалите номер из колонтитула первой страницы, оставив его на остальных.

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

=IF(ROW()=1; ""; ROW()-1)