Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как автоматически сортировать столбец по значению в Excel?

Author Kelly Last modified

При работе со списками или таблицами в Excel часто возникает необходимость, чтобы данные всегда отображались в отсортированном виде, особенно при добавлении новой информации. Например, представьте, что вы управляете таблицей покупок, как показано на скриншоте ниже, где цены на товары регулярно обновляются или добавляются новые записи. В таких ситуациях вы можете заметить, что Excel не переупорядочивает столбец «Цена», когда вы вводите новые значения — данные остаются в исходном положении, пока вы снова не выполните сортировку вручную. Это может легко привести к путанице или ошибкам, особенно если вам нужно быстро проанализировать или представить всегда отсортированную информацию. Знание того, как автоматически сортировать столбец по значению сразу после изменений или добавлений, может значительно сэкономить время и поддерживать точность вашего рабочего процесса.

Это руководство предоставляет практические методы для автоматической сортировки определенного столбца по значению при обновлении листа. Ниже вы найдете как решение с использованием макроса VBA, так и динамическое решение с использованием формул для новых версий Excel. Каждый метод подходит для конкретных сценариев, и предоставлены подробные инструкции по настройке, советы по применению, объяснения параметров и устранение неполадок, чтобы вы могли эффективно реализовать наиболее подходящий подход.

Автоматическая сортировка столбца по значению с помощью VBA

Автоматическая сортировка столбца по значению с помощью формулы Excel (динамические массивы)

A screenshot showing a sample purchase table in Excel with a price column to be sorted


Автоматическая сортировка столбца по значению с помощью VBA

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

Типичные сценарии, где этот метод полезен:

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

Что нужно знать перед началом:
- Решения на основе VBA вносят прямые изменения в ваш лист. Рекомендуется сохранить файл перед началом.
- Макрос будет работать только в том случае, если макросы включены в вашей среде Excel.
- Макросы будут привязаны к конкретному листу и могут потребовать адаптации, если структура таблицы изменится.

1. Щелкните правой кнопкой мыши имя текущего листа на панели вкладок Лист и выберите «Просмотр кода» из контекстного меню.
A screenshot showing the right-click menu with View Code option selected in the sheet tab bar

2. В открывшемся окне «Microsoft Visual Basic for Applications» вставьте следующий код макроса VBA в окно кода для целевого листа.
A screenshot of the Microsoft Visual Basic for Applications window with VBA code pasted for auto sorting

VBA: Автоматическая сортировка столбца в Excel

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Range("B1").Sort Key1:=Range("B2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub

Примечания:
1) В указанном выше коде VBA "B:B" относится к столбцу B, «B1» — это ячейка в первой строке столбца B, а «B2» — это ячейка сразу под заголовком. Вы можете изменить эти ссылки, чтобы они соответствовали столбцу, который вы хотите автоматически сортировать в своих данных.
2) Параметр Header:=xlYes в пятой строке указывает, что ваш диапазон данных включает строку заголовков, гарантируя, что заголовок не будет сортироваться вместе со значениями столбца. Если ваш диапазон данных не имеет заголовка, измените это на Header:=xlNo и также измените Key1:=Range("B2") на Key1:=Range("B1").
3) Макрос активируется всякий раз, когда значение ячейки меняется в указанном столбце.

3. Вернитесь к вашему листу. Теперь, когда вы добавляете новое число в столбец «Цена» или обновляете существующее значение, столбец немедленно будет пересортирован в порядке возрастания.
A screenshot showing an Excel table with the price column sorted automatically after entering a new value
Совет: Всегда вводите новые значения сразу после последней использованной ячейки в столбце. Если среди ваших данных есть пустые ячейки, сортировка не будет работать должным образом.


Автоматическая сортировка столбца по значению с помощью формулы Excel (динамические массивы)

Для пользователей Excel 365 или Excel 2021 и более поздних версий динамические функции массивов, такие как SORT и SORTBY, предоставляют эффективный способ генерации отсортированного списка и его автоматического обновления при изменении данных. Это решение не требует VBA, поддерживается нативно в последних версиях Excel и подходит для сценариев, где вы предпочитаете сохранять исходные данные без изменений и работать с отсортированной копией ваших данных в отдельном диапазоне или листе.

Когда следует использовать этот подход?

  • Если вам нужна отсортированная версия ваших данных в реальном времени в другом месте (например, для отчетов, дашбордов или печати), сохраняя при этом исходные сырые данные.
  • Если вы используете Excel 365, Excel 2021 или более поздние версии, поддерживающие динамические массивы.
Возможные ограничения:
  • Этот метод отображает отсортированные данные в новой области и не переупорядочивает ваши исходные данные. Если вам требуется переупорядочивание на месте, рассмотрите решение VBA выше.
  • Динамические массивы недоступны в Excel 2019 или более ранних версиях.

1. Определите, где вы хотите отобразить отсортированный список. Например, если ваша исходная таблица находится в A1:C10 (с заголовками в строке 1), и вы хотите показать отсортированный список, начиная с ячейки E1, выберите E1.

2. Введите следующую формулу в ячейку E1:

=SORT(A2:C10,2,1)

В указанной выше формуле:

  • A2:C10 — это ваш исходный диапазон данных (исключая заголовки). Измените это, чтобы соответствовать вашему диапазону данных.
  • 2 означает, что вы сортируете по второму столбцу — например, если ваша Цена находится во втором столбце выбранного диапазона.
  • 1 указывает на порядок возрастания. Используйте -1, если хотите убывающий порядок.

3. Нажмите Enter. Формула выведет динамическую, отсортированную копию ваших данных. Если вы добавите, удалите или отредактируете элементы в исходном диапазоне (например, новые цены или продукты), отсортированный список обновится немедленно — никакого ручного вмешательства не требуется.

Примечания:

  • Если больше данных введено ниже исходной области, ссылка в формуле (например, A2:C10) должна быть расширена соответствующим образом.
  • Для постоянно изменяющихся диапазонов данных рекомендуется использовать таблицы Excel (Вставка > Таблица) и ссылаться на имя таблицы в формуле СОРТИРОВКА для автоматического обновления диапазона.
  • Если используется один столбец (например, B2:B10), формула упрощается до =SORT(B2:B10,1,1).

Демонстрация: Автоматическая сортировка столбца по значению с помощью VBA в Excel

 
Kutools для Excel: Более 300 удобных инструментов у вас под рукой! Наслаждайтесь постоянно бесплатными функциями ИИ! Скачать сейчас!

Легко сортировать по частоте встречаемости в Excel

Функция «Расширенная сортировка» Kutools for Excel позволяет легко сортировать данные по различным критериям, таким как длина текста, фамилия, абсолютное значение, частота и многое другое.

A screenshot of Kutools for Excel 'Advanced Sort' feature with sorting options visible

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек