Как пронумеровать строки в Excel автоматически
Простое протягивание номеров маркером заполнения работает, пока таблица не меняется. Как только строки начинают добавлять, удалять или фильтровать, статичные номера превращаются в беспорядок. Разберём быстрый способ протянуть номера вручную и формулы, которые нумеруют строки сами — в том числе с учётом фильтра и в «умной» таблице.
Быстро протянуть номера вручную
Введите 1 в первую ячейку столбца с номерами, наведите курсор на маленький квадратик в правом нижнем углу ячейки (маркер заполнения) и протяните вниз, удерживая клавишу Ctrl — номер будет увеличиваться на 1 в каждой строке. Без Ctrl протягивание одной ячейки просто скопирует то же число во все строки. Второй способ без Ctrl: введите 1 и 2 в первые две ячейки, выделите обе и протяните маркер заполнения дальше — Excel продолжит найденную закономерность.
Нумерация формулой, которая не сбивается
Чтобы номера сами подстраивались при добавлении и удалении строк, используйте формулу на основе функции СТРОКА() — она возвращает номер строки листа, на которой находится сама формула. Если заголовок таблицы в строке 1, а данные начинаются со строки 2, формула для первой строки данных:
=СТРОКА()-1
Протяните формулу вниз на весь столбец — при вставке новой строки внутри диапазона или удалении существующей Excel пересчитает СТРОКА() для всех затронутых ячеек, и нумерация останется правильной без ручной правки.
Нумерация только видимых строк при фильтре
Формула через СТРОКА() показывает исходный номер строки на листе — при включённом фильтре видимые строки будут пронумерованы с пропусками (например, 1, 4, 7), потому что скрытые строки продолжают учитываться. Если нужна сквозная нумерация без разрывов именно видимых строк, используйте растущий диапазон с функцией ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;$B$2:B2)
Первый аргумент 3 соответствует функции СЧЁТЗ (подсчёт непустых ячеек), а такая функция в составе ПРОМЕЖУТОЧНЫЕ.ИТОГИ по умолчанию игнорирует строки, скрытые фильтром. Диапазон в формуле растёт вниз по тому же принципу, что и в формулах подсчёта повторов, — верхняя граница закреплена знаком $, нижняя нет.
Автонумерация в «умной» таблице
Если данные оформлены как таблица (выделите диапазон и нажмите Ctrl+T), у автонумерации формулой есть дополнительное удобство: как только в таблицу добавляется новая строка снизу, Excel сам копирует в неё формулу из соседних ячеек столбца — протягивать вручную не нужно. Чтобы нумерация не зависела от того, в какой строке листа фактически начинается таблица, можно сослаться на её собственный заголовок структурированной ссылкой:
=СТРОКА()-СТРОКА(Таблица1[#Заголовки])
Здесь СТРОКА(Таблица1[#Заголовки]) возвращает
номер строки заголовка таблицы независимо от того, куда её
потом перенесут на листе, — первая строка данных всегда
получит номер 1.
Частые проблемы
- Номер не увеличивается, а копируется одно и то же число. Протягивание одной ячейки с числом без Ctrl по умолчанию копирует значение — держите Ctrl во время протягивания или используйте протягивание по образцу из двух ячеек.
- После удаления строки нумерация «дырявая». Так бывает, если номера были протянуты вручную как статичные значения. Замените их формулой на основе СТРОКА() — она пересчитывается сама при изменении структуры таблицы.
- При включённом фильтре номера видимых строк идут не подряд. Обычная формула через СТРОКА() показывает исходный номер строки листа, включая скрытые фильтром. Для сквозной нумерации только видимых строк используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ.
- Сортировка по номеру работает неправильно. Если номера когда-то были вставлены из другого источника как текст, а не как число, Excel сортирует их по алфавиту, а не по значению («10» окажется раньше «2»). Проверить можно по выравниванию в ячейке — текст прижат влево, число вправо; исправить — умножением на 1 или функцией ЗНАЧЕН.
Часто задаваемые вопросы
Почему при протягивании номер копируется, а не увеличивается?
По умолчанию протягивание одной ячейки с числом копирует то же значение во все ячейки. Чтобы номер увеличивался на 1 в каждой строке, держите Ctrl во время протягивания маркера заполнения либо сначала введите два числа подряд (например, 1 и 2), выделите обе ячейки и протяните — Excel продолжит найденную закономерность.
Как сделать так, чтобы номера строк не сбивались после удаления или добавления строк?
Протянутые вручную номера — это статичные значения, они не пересчитываются. Вместо них используйте формулу на основе функции СТРОКА(), например =СТРОКА()-1, если данные начинаются со второй строки, — она вычисляет номер на основе текущего положения строки на листе и сама меняется, когда строки добавляют или удаляют.
Как пронумеровать только видимые (отфильтрованные) строки без пропусков?
Формула на основе СТРОКА() покажет исходный номер строки на листе и после фильтрации — то есть с пропусками. Чтобы видимые строки шли подряд без разрывов, используйте =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;$B$2:B2) — эта функция считает только видимые ячейки и игнорирует скрытые фильтром или вручную.
Продолжает ли нумерация формулой работать в «умной» таблице при добавлении новых строк снизу?
Да — если столбец с номером входит в «умную» таблицу (Ctrl+T), Excel автоматически копирует формулу в каждую новую добавленную строку. Дополнительно формулу можно сделать независимой от положения таблицы на листе через структурированную ссылку на заголовок, например =СТРОКА()-СТРОКА(Таблица1[#Заголовки]).
Готовые таблицы с автонумерацией
В шаблонах на сайте нумерация строк уже встроена в структуру таблицы и не сбивается при добавлении новых записей — не нужно настраивать формулы вручную.