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

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

Как переместить всю строку вниз активного листа на основе значения ячейки в Excel?

Author Siluvia Last modified

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

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


Переместить всю строку вниз активного листа на основе значения ячейки с помощью кода VBA

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

move entire row to the bottom of active sheet based on cell value

1. Нажмите Alt + F11 одновременно, чтобы открыть окно Microsoft Visual Basic for Applications.

2. В окне Microsoft Visual Basic for Applications нажмите Вставить > Модуль. Затем скопируйте и вставьте следующий код VBA в окно.

Код VBA: Переместить всю строку вниз активного листа на основе значения ячейки

Sub MoveToEnd()
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Примечание: В этом коде VBA указанное значение — это «Готово». Вы можете изменить это значение в коде, чтобы оно соответствовало значению, которое должно вызывать перемещение строки (например, вы можете изменить его на «Завершено» или любой другой статус, соответствующий вашему рабочему процессу). Убедитесь, что значение точно совпадает, включая регистр и пробелы, или при необходимости настройте код для нечувствительного к регистру сравнения.

3. Нажмите клавишу F5 или кнопку Выполнить, чтобы выполнить код. В появившемся диалоговом окне Kutools для Excel выберите диапазон столбцов, где может появиться целевое значение, затем нажмите кнопку ОК.

vba code to select the data range

После подтверждения код автоматически найдет строки со значением «Готово» в выбранном столбце и переместит их вниз вашего диапазона данных. Это перераспределение происходит мгновенно, экономя время на ручной сортировке или перемещении строк.

 the entire row contains the specific value is moved to the bottom of the data range

Советы:

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

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

a screenshot of kutools for excel ai

Раскройте магию Excel с Kutools AI

  • Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
  • Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
  • Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
  • Интерпретация формул: Легко разбирайтесь в сложных формулах.
  • Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Улучшите возможности Excel с помощью инструментов на базе ИИ. Скачать сейчас и испытайте беспрецедентную эффективность!

Переместить всю строку вниз с использованием формул Excel и сортировки

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

1. Вставьте новый вспомогательный столбец справа или слева от существующих данных. Например, если заголовки ваших данных находятся в строке 1, а значения начинаются с строки 2, а статус находится в столбце C, вставьте новый столбец D и назовите его «SortKey» или аналогично.

2. В первой ячейке вспомогательного столбца (исключая заголовок, например, D2) введите следующую формулу:

=IF(C2="Done",1,0)

Эта формула присвоит 1 строкам, где столбец C равен «Готово», и 0 всем остальным строкам.

3. Нажмите Enter для подтверждения формулы, затем скопируйте её вниз по всем строкам данных. Просто перетащите маркер заполнения из D2 вниз до последней строки ваших данных или дважды щелкните маркер заполнения для автоматического заполнения, если соседний столбец заполнен.

4. Выберите любую ячейку в диапазоне данных, затем на ленте Excel перейдите на вкладку Данные и нажмите Сортировка.

5. В диалоговом окне Сортировка выберите вспомогательный столбец («SortKey») в раскрывающемся списке «Сортировать по» и выберите порядок От наименьшего к наибольшему. Это разместит все строки со статусом «Готово» (отмеченные 1) внизу, а остальные (отмеченные 0) наверху.

6. Нажмите ОК для применения сортировки. Теперь ваши данные будут переупорядочены так, что все завершенные или «Готово» записи появятся внизу таблицы.

Объяснение параметров и советы:

  • Вы можете изменить «Готово» в формуле на любой другой индикатор статуса, соответствующий вашему листу (например, «Завершено», «Неактивно»). Убедитесь, что написание точно соответствует вашим данным.
  • Если вы хотите перемещать строки с несколькими значениями (например, как «Готово», так и «Отменено»), используйте формулу вроде этой:
    =IF(OR(C2="Done",C2="Canceled"),1,0)
  • Чтобы обратить эффект (т.е., строки «Готово» наверху), сортируйте в порядке От наибольшего к наименьшему или поменяйте местами 0 и 1 в формуле.

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


Связанные статьи:

Лучшие инструменты для повышения продуктивности в 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-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек