Como reordenar linhas facilmente no Excel com arrastar e soltar ou mover para cima ou para baixo?

130

Eu tenho que fazer algumas reordenações manuais ou linhas no Excel e cortar / colar é muito difícil de usar. Eu estou procurando por algo que me permita usar drag'n'drop ou adicionar alguns botões para mover para cima / baixo para cima / baixo.

    
por sorin 24.02.2011 / 12:24

9 respostas

191

  1. Selecione a linha / coluna.
  2. Mova o cursor do mouse até o limite da linha / coluna para ver o cursor de quatro setas (ou o cursor de mão em um Mac).
  3. Pressione Shift no teclado, depois clique e arraste a linha / coluna.

A tecla Shift muda a linha / coluna em vez de sobrescrever a linha / coluna alvo.

    
por 24.07.2011 / 21:59
11

Este ainda é um método de cortar / colar, mas é a maneira mais simples de pensar.

solução de 4 cliques: (por exemplo, mover a linha 8 acima da linha 5)

  1. Clique com o botão direito no número da linha (por exemplo, linha 8), clique em Recortar (ou T )
  2. Clique com o botão direito no número da linha (por exemplo, linha 5), clique em Insert Cut Cells (ou E )

Nota: isso também funciona para mover várias linhas.

    
por 28.02.2011 / 08:38
3

Tente:

Deslocamento + Barra de espaço ou clique do mouse no número da linha para selecionar a linha

Ctrl + X para cortar

Clique no mouse onde você deseja.

Ctrl + V para colá-lo

    
por 21.02.2015 / 16:54
3

Adicione as seguintes macros à sua pasta pessoal de macros e atribua-lhes teclas de atalho. O comportamento imita o Swap Line Up do Sublime Text & Troca de linha para baixo.

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
    
por 05.07.2017 / 15:38
2

Ao lidar com casos semelhantes no passado, nos quais não consegui classificar apenas por uma linha, descobri uma maneira de gerar uma coluna com um resultado de fórmula que era algo que eu poderia classificar.

Encontrei uma resposta mais direta à sua pergunta no site :

Microsoft Word has a feature which Excel is lacking. Jon's method involves moving the data to Word, employing the Word command and then pasting the data back to Excel. Follow these steps.

  1. Copy the relevant chunk of rows and columns out of your speadsheet. It is best to note the size of the range, e.g., 118 rows x 5 columns
  2. Paste the data into a Microsoft Word document, where it automatically becomes a table and retains all your formatting.
  3. In Word, use the little-known SHIFT-ALT-UP-ARROW and SHIFT-ALT-DOWN-ARROW to very speedily slide rows (or selected chunks of rows) up and down at will. Select one or more rows. You can select the entire row or just a portion of the row as shown here.

    enter image description here

    Hit Shift+Alt+UpArrow several times in order to quickly slide the rows up into position.

    enter image description here

  4. When you have sequenced the rows as you like, paste them back into Excel, making sure you overwrite the exact same size chunk you copied.

    
por 24.02.2011 / 12:44
2

No Mac, use o comando + Shift enquanto arrasta. Eu suponho que nas janelas ele deve ser Win + Shift .

    
por 12.07.2012 / 15:12
1

Este é o mais fácil que encontrei. Não é possível arrastar e soltar:

Por exemplo, para mover a linha 3 antes da linha 2:

  • clique com o botão direito na linha 3 (no número 3 à esquerda) e selecione Recortar
  • clique com o botão direito na linha 2 (no número 2) e selecione Insert Cut Cells
por 31.08.2013 / 12:37
1

Uma ligeira melhoria na resposta de @ wilson:

Clique com o botão direito do número da linha (por exemplo, linha 8), clique em "t" Clique com o botão direito no número da linha (por exemplo, linha 5), pressione "e"

Misturar o uso do mouse e do teclado realmente acelera isso para mim.

    
por 25.06.2014 / 17:11
1

Aqui está um sub que também funciona para colunas; combina a funcionalidade para todas as quatro direções:

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
    
por 08.05.2015 / 19:03