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

Иван Корнев·10.04.2026·5 мин

Чтобы быстро пронумеровать строки в Excel, введите 1 в первую ячейку, 2 во вторую, выделите обе и протяните маркер заполнения вниз. Для автоматической нумерации, которая не сбивается при удалении строк или фильтрации, используйте формулу =СТРОКА()-1 (для простых списков) или функцию =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; диапазон) (для работы с фильтрами).

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

Простая нумерация: маркер заполнения и базовые формулы

Самый быстрый способ создать последовательность чисел — использовать встроенные инструменты автозаполнения. Этот метод подходит для статичных отчетов, где данные не будут часто меняться или фильтроваться.

Метод маркера заполнения:

  1. Введите число 1 в первую ячейку (например, A2).
  2. Введите число 2 в следующую ячейку (A3).
  3. Выделите обе ячейки.
  4. Наведите курсор на правый нижний угол выделения (черный квадратик — маркер заполнения), пока он не превратится в черный крестик.
  5. Зажмите левую кнопку мыши и протяните вниз до конца списка.

Лайфхак: Если нужно пронумеровать тысячи строк, не тяните мышкой. Введите 1 в A2, перейдите на вкладку «Главная» → «Заполнить» → «Прогрессия», выберите «по столбцам» и укажите предельное значение. Или просто введите 1, зажмите Ctrl и дважды кликните по маркеру заполнения — список заполнится до конца соседнего столбца с данными.

Метод формулы СТРОКА(): Этот способ надежнее, так как номера пересчитываются автоматически при вставке новых строк. Формула: =СТРОКА() - N, где N — количество строк до начала нумерации (обычно это номер строки заголовка).

  • Если данные начинаются со 2-й строки (1-я — заголовок): =СТРОКА()-1.
  • Если данные начинаются с 5-й строки: =СТРОКА()-4.

Протяните эту формулу вниз. Теперь, если вы вставите новую строку в середину списка, нумерация обновится сама.

Автоматическая нумерация в «Умных таблицах»

Если вы работаете с постоянно растущим списком данных, лучше всего преобразовать диапазон в официальную «Таблицу» Excel. Это гарантирует, что формулы нумерации будут автоматически копироваться на новые строки.

Как сделать:

  1. Выделите ваш диапазон данных.
  2. Нажмите Ctrl + T (или Вставка → Таблица). Убедитесь, что стоит галочка «Таблица с заголовками».
  3. В первом столбце новой таблицы введите формулу: =СТРОКА()-СТРОКА([#Заголовки])-1 (В английской версии: =ROW()-ROW(Table1[#Headers])-1)

Преимущество таблиц: При добавлении новой строки внизу таблицы формула нумерации применится мгновенно без вашего участия. Кроме того, таблица автоматически расширяет диапазоны в других формулах, ссылающихся на неё.

Нумерация только видимых строк (при фильтрации)

Стандартная нумерация (1, 2, 3...) нарушается, когда вы применяете фильтр: номера остаются прежними, создавая разрывы (например, 1, 2, 5, 8...). Чтобы нумеровать только отфильтрованные записи подряд, используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL).

Формула для динамической нумерации при фильтрах: Предположим, данные находятся в столбце B, а нумерацию делаем в столбце A, начиная с ячейки A2.

В ячейку A2 вставьте: =ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; $B$2:B2); ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; $B$2:B2); "")

Разбор формулы:

  • 3 — код функции СЧЁТЗ (считает непустые ячейки).
  • $B$2:B2 — расширяющийся диапазон. Знак доллара фиксирует начало, а вторая часть диапазона растет при копировании вниз.
  • Функция проверяет, видима ли текущая строка. Если да — присваивает порядковый номер среди видимых. Если строка скрыта фильтром — оставляет ячейку пустой.

Протяните формулу до конца списка. Теперь при любом фильтре номера будут перестраиваться: 1, 2, 3... без пропусков.

Исключение пустых строк из нумерации

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

Формула: =ЕСЛИ(B2=""; ""; СТРОКА()-СТРОКА($B$2)+1)

Логика проста: если ячейка B2 пуста, формула возвращает пустоту. Если там есть текст или число — вычисляется номер строки относительно начала списка.

Сравнение методов нумерации

МетодПлюсыМинусыКогда использовать
Маркер заполненияОчень быстро, не требует формулСтатично, сбивается при вставке/удалении строкОдноразовые списки, печать
Формула СТРОКА()Автообновление при вставке строкНумерует скрытые строки при фильтрацииПостоянные реестры без частой фильтрации
Умная таблицаПолная автоматизация, стильТребует преобразования диапазонаБазы данных, регулярные отчеты
ПРОМЕЖУТОЧНЫЕ.ИТОГИКорректная работа с фильтрамиСложнее формула, чуть больше нагрузка на файлСписки для анализа с частой фильтрацией

Частые ошибки и решения

  • Номера не меняются после вставки строки.
    • Причина: Использован метод копирования значений или маркера заполнения вместо формулы.
    • Решение: Используйте формулу =СТРОКА() или преобразуйте диапазон в Таблицу (Ctrl+T).
  • Нумерация начинается с неправильного числа (например, с 5).
    • Причина: Неверно рассчитан сдвиг в формуле.
    • Решение: Проверьте номер строки, где находится первая формула. Формула должна быть =СТРОКА() - (номер_строки_формулы - желаемый_стартовый_номер).
  • При фильтрации появляются «дыры» в номерах.
    • Причина: Используется обычная формула СТРОКА().
    • Решение: Замените её на конструкцию с ПРОМЕЖУТОЧНЫЕ.ИТОГИ, описанную выше.

FAQ

Как пронумеровать строки с шагом 2 (1, 3, 5...)? Используйте формулу: =(СТРОКА()-НОМЕР_СТАРТА)*2+1 или просто введите 1 и 3 в первые две ячейки и протяните маркер заполнения — Excel распознает шаг.

Можно ли нумеровать строки в сводной таблице? Напрямую формулами внутри сводной таблицы это сделать сложно. Лучший способ: добавьте вспомогательный столбец с уникальными номерами (1, 2, 3...) в исходные данные до создания сводной таблицы, а затем перетащите это поле в область «Строки» сводной таблицы.

Что делать, если нужно пронумеровать только каждую 10-ю строку? Используйте формулу с функцией ОСТАТ: =ЕСЛИ(ОСТАТ(СТРОКА(); 10)=0; СТРОКА()/10; ""). Она поставит номер только в строках, кратных 10.