Как легко изменить порядок строк в Excel с помощью перетаскивания или перемещения вверх или вниз?


143

Я должен сделать некоторые ручное изменение порядка или строк в Excel, и вырезать / вставить слишком сложно для использования. Я ищу что-то, что позволило бы мне использовать drag'n'drop или добавить несколько кнопок для перемещения вверх / вниз, перемещения вверх / вниз.

Ответы:


212
  1. Выберите строку / столбец.
  2. Переместите курсор мыши к границе строки / столбца, чтобы вы увидели курсор в виде четырехсторонней стрелки (или курсор в виде руки на Mac).
  3. Нажмите Shiftна клавиатуре, затем нажмите и перетащите строку / столбец.

ShiftКлюч сдвигается на строку / столбец вместо перезаписи целевой строки / столбца.


18
На Mac для второго шага вы хотите переместить курсор мыши так, чтобы вы видели значок руки, а не курсор в виде четырехсторонней стрелки.
Скотт Ричи

2
У меня Excel 2013, и кажется, что поведение по умолчанию теперь, когда вы перемещаете строку после того, как видите, что курсор в виде четырехсторонней стрелки изменяет поведение. Нажатие SHIFT фактически заменяет строку назначения
Korayem

У меня Office365 (поэтому я думаю, что у меня есть последняя версия Excel на момент публикации - я не могу найти правильный номер версии). Выбирая ЛЮБУЮ группу ячеек (не только строки / столбцы), перемещаясь к границе, чтобы получить 4-стороннюю стрелку, и перетаскивая данные перемещается вокруг - оставляя пустое отверстие позади. Отбрасывание предупреждает о перезаписи. Shift + перетаскивание пытается изменить порядок строк или столбцов, но только если выбран полный ряд / столбец. «Полный» = вся некоторая прямоугольная область - не обязательно полная электронная таблица. // Путаница: необходимо навести курсор на границу ячеек данных, а не на номер строки или букву столбца - размер которого изменяется.
Крейзи Глеу

1
Кто-нибудь знает о ярлыке, чтобы получить эту «стрелку в 4 направлениях» - клавиатуре, или макросе / Visual Basic (или как называется новый язык макросов)? Мне действительно трудно сделать это точно с помощью мыши, не говоря уже о сенсорном экране или ручке. В идеале я хотел бы иметь большой палец, чтобы перетаскивать строки и столбцы, как это.
Крейзи Глеу

1
Кто-нибудь знает, как это сделать Google Sheets?
Крейзи Глеу

13

Это все еще метод вырезания / вставки, но это самый простой способ, который я могу себе представить.

Решение в 4 клика: (например, переместите строку 8 над строкой 5)

  1. Щелкните правой кнопкой мыши номер строки (например, строка 8), нажмите « Вырезать» (или T)
  2. Щелкните правой кнопкой мыши номер строки (например, строка 5), выберите Вставить вырезанные ячейки (или E)

Примечание: это также работает для перемещения нескольких строк.


Это решение, предназначенное только для мыши, без перетаскивания, поэтому оно хорошо подходит для перемещения строк в другое положение, требующее прокрутки. В противном случае ответ @ kok будет более элегантным.
Уилсон

спасибо, также это все еще работало для меня, kok's лучше, но изначально немного дольше для понимания, и нужно видеть граничную кнопку, хотя это не обязательно сложнее, нужно привыкнуть к этому
FantomX1

3

Пытаться:

Shift+ Space barили щелкните мышью по номеру строки, чтобы выбрать строку

Ctrl+ Xрезать

Щелкните мышью там, где вы хотите.

Ctrl+ Vвставить


2
неправильный ответ. это заменит вместо того, чтобы переупорядочить
Уилсон

3

Добавьте следующие макросы в личную книгу макросов и назначьте им сочетания клавиш. Поведение имитирует Swap Line Up Swap Line Up и Swap Line Down.

Sub move_rows_down()
    Dim rOriginalSelection As Range
    Set rOriginalSelection = Selection.EntireRow
    With rOriginalSelection
        .Select
        .Cut
        .Offset(rOriginalSelection.rows.Count + 1, 0).Select
    End With
    Selection.Insert
    rOriginalSelection.Select
End Sub

Sub move_rows_up()
    Dim rOriginalSelection As Range
    Set rOriginalSelection = Selection.EntireRow
    With rOriginalSelection
        .Select
        .Cut
        .Offset(-1, 0).Select
    End With
    Selection.Insert
    rOriginalSelection.Select
End Sub

2

Имея дело с подобными случаями в прошлом, когда я не мог просто отсортировать по строке, я нашел способ создать столбец с результатом формулы, который я мог бы отсортировать.

Я нашел более прямой ответ на ваш вопрос с этого сайта :

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

  1. Скопируйте соответствующий кусок строк и столбцов из вашей таблицы. Лучше всего отметить размер диапазона, например, 118 строк x 5 столбцов
  2. Вставьте данные в документ Microsoft Word, где они автоматически становятся таблицей и сохраняют все ваше форматирование.
  3. В Word используйте малоизвестные клавиши SHIFT-ALT-UP-ARROW и SHIFT-ALT-DOWN-ARROW, чтобы очень быстро перемещать строки (или выбранные фрагменты строк) вверх и вниз по желанию. Выберите одну или несколько строк. Вы можете выбрать всю строку или только часть строки, как показано здесь.

    введите описание изображения здесь

    Нажмите Shift + Alt + UpArrow несколько раз, чтобы быстро сдвинуть ряды в нужное положение.

    введите описание изображения здесь

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


Сладкий! Я бы хотел, чтобы был способ сделать это в Excel или OneNote. // (Excel делает специальные перетаскивания мышью, как отмечено выше, но мне не хватает mouse.coordination для этого.) // К сожалению, кто-то отказывается от других достоинств Excel, таких как сортировка таблиц по значениям столбцов, чтобы получить это слово добродетель
Krazy Glew

2

В Mac используйте Command+ Shiftпри перетаскивании. Я полагаю, что в Windows это должно быть Win+ Shift.


1

Небольшое улучшение ответа @ wilson:

Щелкните правой кнопкой мыши номер строки (например, строка 8), нажмите «t» Щелкните правой кнопкой мыши номер строки (например, строка 5), нажмите «e»

Смешивание использования мыши и клавиатуры действительно ускоряет его для меня.


1

Вот подпункт, который также работает для столбцов; он сочетает в себе функциональность для всех четырех направлений:

Sub MoveRowsOrColumns(direction As String)
    Dim rOriginalSelection As Range

    Select Case direction
    Case "up", "down"
        Set rOriginalSelection = Selection.EntireRow
    Case "left", "right"
        Set rOriginalSelection = Selection.EntireColumn
    Case Else
        Debug.Assert False
    End Select

    With rOriginalSelection
        .Select
        .Cut
        Select Case direction
        Case "up"
            .Offset(-1, 0).Select
        Case "down"
            .Offset(rOriginalSelection.Rows.Count + 1, 0).Select
        Case "left"
            .Offset(0, -1).Select
        Case "right"
            .Offset(0, rOriginalSelection.Columns.Count + 1).Select
        End Select
    End With
    Selection.Insert
    rOriginalSelection.Select
End Sub

-1

Это самый простой, который я нашел. Не могу на самом деле перетаскивать:

Например, чтобы переместить строку 3 перед строкой 2:

  • щелкните правой кнопкой мыши на строке 3 (номер 3 слева) и выберите « Вырезать».
  • щелкните правой кнопкой мыши на строке 2 (на номер 2) и выберите Вставить вырезать клетки
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.