Нумерация в excel при сортировке

1

Чтобы пронумеровать по порядку строки, полученные после применения фильтра, необходимо:

  1. 1. В первую ячейку отфильтрованного списка внести функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ, выбрать 103-й номер функции (СЧЁТЗ) кликнув 2 раза по номеру 

2

2. Нажать fx в строке формул и указать в Ссылка1 соседнюю ячейку в этой же строке (в примере – наименования товаров).

3

3. Ввести «:» и еще раз указать эту же ячейку, создав диапазон из одной ячейки.

4

4. Первую границу диапазона фиксируем (выделяем адрес и нажимаем на клавиатуре F4)

5

5. Нажимаем «OK» и протягиваем формулу до конца списка.

Мы получаем активную нумерацию. Даже если вы отсортируете значения в других столбцах, нумерация сохранится.

7

Если материал Вам понравился или даже пригодился, Вы можете поблагодарить автора, переведя определенную сумму по кнопке ниже:
(для перевода по карте нажмите на VISA и далее «перевести»)


При применении

фильтра

строки скрываются целиком. Если в таблице имелась нумерация строк, то она будет сбита. Но, есть способ обойти эту проблему.

Пусть имеется таблица с нумерацией строк (в столбце



введены числа от 1 до 16).

Если к таблице применить

фильтр

(нажав в строке заголовков таблицы

CTRL+SHIFT+L

и установив критерии отбора), то нумерация строк будет сбита (см. столбец

А

).

Для того, чтобы сохранить нумерацию строк, используем вместо последовательности констант (от 1 до 16) — формулу.

Решение основано на использовании функции

ПРОМЕЖУТОЧНЫЕ.ИТОГИ()

, которая «чувствует», когда строка скрыта

фильтром

.

Столбец с нумерацией расположим в столбце

А

(заголовок таблицы разместим в строке

6

). Полезные данные, которые вводятся БЕЗ ПРОПУСКОВ, расположим в столбце

В

(см.

Файл примера

):

Записав в ячейке

A

7

формулу

=ЕСЛИОШИБКА(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;B7);A6+1;A6);1)

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

ПРОМЕЖУТОЧНЫЕ.ИТОГИ()

возвращает 0 (ЛОЖЬ) и счетчик номера строки не увеличивается на 1, а остается, как у предыдущей строки.

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

0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

1

Нумерация после сортировки…

19.09.2011, 21:19. Показов 11642. Ответов 13


Студворк — интернет-сервис помощи студентам

Доброго всем времени суток !!!
Подскажите пожалуйста каким образом сделать автонумерацию после сортировки списка в таблице.
Есть на пример таблица с данными (примером в 2000 строк). Мне надо отсортировать N-нное количество данных по каким то критериям, и я получаю (примером 500) строк с совершенно разброшенной нумерацией, а список надо распечатать пронумерованный. Вручную перебивать долго, да и нумерация опять таки собьётся. Метод авто заполнения в таком режиме не работает. Подскажите пожалуйста, как
выйти из этого положения.
Большое спасибо.



0



956 / 596 / 11

Регистрация: 11.06.2010

Сообщений: 1,345

19.09.2011, 21:21

2

Судя по всему Вам подойдёт формула
=СТРОКА()

ЗЫ Если нет — давайте пример.



0



0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

19.09.2011, 21:34

 [ТС]

3

Не то. Номер п/п отображает номер строки. То есть строки которые скрыты не видны и соответственно нумерация не правильная.



0



956 / 596 / 11

Регистрация: 11.06.2010

Сообщений: 1,345

19.09.2011, 21:36

4

Цитата
Сообщение от Serge 007
Посмотреть сообщение

ЗЫ Если нет — давайте пример.

…..



0



0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

19.09.2011, 21:48

 [ТС]

5

Книга1.rar
Вот что то типа этого. Отсортировать нули или единицы, что бы нумерация осталась по порядку.
Потому как в таблицах приходится перенумеровывать очень много.



0



0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

19.09.2011, 22:43

 [ТС]

6

Неужели с этим никто не сталкивался?
Может проблему с нумерацией можно решить каким то другим способом?



0



730 / 406 / 95

Регистрация: 19.12.2010

Сообщений: 756

19.09.2011, 22:44

7

как вариант.



1



0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

20.09.2011, 10:49

 [ТС]

8

Цитата
Сообщение от 19vitek
Посмотреть сообщение

как вариант.

Спасибо. Как вариант — работает отлично. Завтра на работе попробую всё это воплотить в своих таблицах. Я и предполагал что без написания макросов не обойдётся. А в этом деле я не очень силён.
Большое Вам спасибо. Намного облегчится рутинная работа.

Добавлено через 11 часов 55 минут
Пришёл на работу, всё сделал. Есть небольшие проблемки, сортировка в фильтре работает отлично (а это главное для меня). А при раскрытии полного списка (без фильтрации) что ото не хочет (но тут пока можно воспользоваться функцией автозаполнения). Но это уже не столь важно. Разберёмся.
Огромное спасибо этому форуму.



0



88 / 22 / 1

Регистрация: 12.09.2011

Сообщений: 59

20.09.2011, 12:15

9

Без макросов



2



0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

20.09.2011, 16:44

 [ТС]

10

Цитата
Сообщение от Михаил См.
Посмотреть сообщение

Без макросов

Спасибо. Попробую.



0



0 / 0 / 0

Регистрация: 21.07.2009

Сообщений: 55

22.09.2011, 11:45

 [ТС]

11

Метод от 19vitek
Подогнал всё под свою таблицу. Работает всё замечательно и надёжно.



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

10.01.2014, 09:41

13

Как вариант

Код

=ЕСЛИ(ЕТЕКСТ(B3);ПРОМЕЖУТОЧНЫЕ.ИТОГИ(103;$B$3:B3);"")



1



0 / 0 / 0

Регистрация: 27.03.2017

Сообщений: 1

27.03.2017, 18:11

14

Михаил, спасибо! То, что мне было нужно, просто, но гениально!



0



{quote}{login=R Dmitry}{date=01.06.2010 12:33}{thema=Re: Re: Автоматическая нумерация строк, устойчивая к сортировке}{post}Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, [B:B]) Is Nothing _
      Then  
      Dim ilastrow As Long  
   With Sheets(«Лист1»)  
       ilastrow = .Cells(Rows.Count, 2).End(xlUp).Row  
       .Cells(ilastrow, 1) = Val(.Cells(ilastrow — 1, 1)) + 1  
       End With  
      End If  
End Sub  
в Лист1, id первый столбец, событие во втором{/post}{/quote}  

  Макрос — это, конечно, хорошо. Делал макрос, работавщий на уровне всей книги и обслуживавший в ней все таблицы, в которых встречается столбец с определенным именем («#»). НО!  

  Когда макрос записывает значение ячейки, undo history обнуляется. Что неприемлемо для пользователя. Представьте, пользователь вводит данные, используя TAB, и каждый раз, когда создается новая строка и срабатывает макрос, отмена последних действий становится невозможна. :(  

  Еще пробовал написать макрофункцию, которая использует CustomProperties листа, добавляя в них новое свойство (аналогично базам данных). При каждом обращении к ней эта функция увеличивает значение такого свойства на 1 и возвращает его. Работает. НО!  

  При добавлении новой строки excel пересчитывает все формулы столбца с этой функцией и получается, что айдишники каждый раз раздаются заново. :(((

Автоматическая нумерация строк

В отличие от других программ Microsoft 365, Excel не предоставляет кнопку для автоматического номера данных. Однако можно легко добавить последовательные числа в строки данных путем перетаскивания маркер заполнения для заполнения столбца последовательностью чисел или с помощью функции СТРОКА.

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

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

В этой статье

  • Заполнение столбца последовательностью чисел

  • Нумерация строк с помощью функции СТРОКА

  • Отображение или скрытие маркера заполнения

Заполнение столбца последовательностью чисел

  1. Выделите первую ячейку в диапазоне, который необходимо заполнить.

  2. Введите начальное значение последовательности.

  3. Введите значение в следующей ячейке, чтобы задать образец заполнения.

    Совет: Например, если требуется задать последовательность 1, 2, 3, 4, 5…, введите в первые две ячейки значения 1 и 2. Если необходимо ввести последовательность 2, 4, 6, 8…, введите значения 2 и 4.

  4. Выделите ячейки, содержащие начальные значения.

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

  5. Перетащите маркер заполнения Маркер заполнения в диапазон, который нужно заполнить.

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

    Чтобы ввести последовательность в возрастающем порядке, перетащите маркер вниз или вправо. Чтобы ввести последовательность в убывающем порядке, перетащите маркер вверх или влево.

    Совет: Если маркер заполнения не виден, возможно, его сначала необходимо отобразить. Дополнительные сведения см. в статье Отображение или скрытие маркера заполнения.

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

Нумерация строк с помощью функции СТРОКА

  1. Введите в первую ячейку диапазона, который необходимо пронумеровать, формулу =СТРОКА(A1).

    Функция СТРОКА возвращает номер строки, на которую указана ссылка. Например, функция =СТРОКА(A1) возвращает число 1.

  2. Перетащите маркер заполнения Маркер заполнения, охватив диапазон, который необходимо заполнить.

    Совет: Если маркер заполнения не виден, возможно, его сначала необходимо отобразить. Дополнительные сведения см. в статье Отображение или скрытие маркера заполнения.

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

  • Если вы используете функцию СТРОКА и хотите, чтобы числа вставлялись автоматически при добавлении новых строк данных, преобразуйте диапазон данных в таблицу Excel. Все строки, добавленные в конец таблицы, последовательно нумеруются. Дополнительные сведения см. в статье Создание и удаление таблицы Excel на листе.

Для ввода определенных последовательных числовых кодов, например кодов заказа на покупку, можно использовать функцию СТРОКА вместе с функцией ТЕКСТ. Например, чтобы начать нумерованный список с кода 000-001, введите формулу =ТЕКСТ(СТРОКА(A1),»000-000″) в первую ячейку диапазона, который необходимо пронумеровать, и перетащите маркер заполнения в конец диапазона.

Отображение или скрытие маркера заполнения

По умолчанию маркер заполнения Маркер заполнения отображается, но его можно включить или отключить.

  1. В Excel 2010 и более поздних версиях перейдите на вкладку Файл и выберите пункт Параметры.

    В Excel 2007 нажмите кнопку Microsoft Office Изображение кнопки Office, а затем выберите Пункт Параметры Excel.

  2. В категории Дополнительно в разделе Параметры правки установите или снимите флажок Разрешить маркеры заполнения и перетаскивание ячеек, чтобы отобразить или скрыть маркер заполнения.

Примечание: Чтобы предотвратить замену имеющихся данных при перетаскивании маркера заполнения, по умолчанию установлен флажок Предупреждать перед перезаписью ячеек. Если не требуется, чтобы приложение Excel выводило сообщение о перезаписи ячеек, можно снять этот флажок.

См. также

Полные сведения о формулах в Excel

Рекомендации, позволяющие избежать появления неработающих формул

Поиск ошибок в формулах

Сочетания клавиш и горячие клавиши в Excel

Функции ссылки и поиска (справка)

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

Понравилась статья? Поделить с друзьями:
  • Нумерация в excel по порядку автоматически строк в таблице
  • Нумерация в excel ctrl
  • Нумерация абзацев в тексте word
  • Нумерации страниц на всех листах excel
  • Нули в excel 2010