Jak łatwo zmienić kolejność wierszy w programie Excel za pomocą przeciągania i upuszczania lub przesuwania w górę lub w dół?

142

Muszę zrobić kilka ręcznych zmian kolejności lub wierszy w programie Excel, a wycinanie / wklejanie jest zbyt trudne w użyciu. Szukam czegoś, co pozwoliłoby mi użyć drag'n'drop lub dodać kilka przycisków do ruchów góra / dół ruch góra / dół.

sorin
źródło

Odpowiedzi:

211
  1. Wybierz wiersz / kolumnę.
  2. Przesuń kursor myszy do granicy wiersza / kolumny, aby zobaczyć kursor ze strzałką w cztery strony (lub kursor na komputerze Mac).
  3. Naciśnij Shiftna klawiaturze, a następnie kliknij i przeciągnij wiersz / kolumnę.

ShiftKlawisz przesuwa wiersz / kolumnę zamiast nadpisywania cel wiersz / kolumnę.

kok
źródło
18
Na komputerze Mac w kroku drugim chcesz przesunąć kursor myszy, aby zobaczyć ikonę ręki, a nie kursor z czterema strzałkami.
Scott Ritchie
2
Mam Excel 2013 i wydaje się, że zachowanie domyślne jest teraz, gdy przesuwasz wiersz po zobaczeniu, że kursor ze strzałką czterokierunkową zmienia zachowanie. Naciśnięcie SHIFT faktycznie zastępuje wiersz docelowy
Korayem
Mam Office365 (więc wydaje mi się, że mam najnowszą wersję programu Excel w momencie publikacji - nigdzie nie mogę znaleźć odpowiedniego numeru wersji). Zaznaczenie DOWOLNEJ grupy komórek (nie tylko wierszy / kolumn), przejście do granicy w celu uzyskania 4-kierunkowej strzałki i przeciąganie przesuwa dane wokół - pozostawiając pustą dziurę za sobą. Upuszczenie go ostrzega przed nadpisaniem. Shift + przeciąganie próbuje zmienić kolejność wierszy lub kolumn, ale tylko jeśli wybrano pełny wiersz / kolumnę. „Pełny” = cały prostokątny obszar - niekoniecznie pełny arkusz kalkulacyjny. // Zamieszanie: należy najechać wskaźnikiem na granicę komórek danych, a nie na numer wiersza lub literę kolumny - zmienia się rozmiar.
Krazy Glew
Czy ktoś zna skrót do uzyskania tej „4-kierunkowej strzałki” - skrót klawiaturowy lub makro / Visual Basic (lub jak to się nazywa nowy język makr)? Bardzo trudno jest mi to zrobić dokładnie za pomocą myszy, a co dopiero na ekranie dotykowym lub za pomocą pióra. Idealnie chciałbym mieć „kciuk” do przeciągania wierszy i kolumn w ten sposób.
Krazy Glew
1
Czy ktoś wie, jak to zrobić w Arkuszach Google?
Krazy Glew
13

To wciąż metoda wycinania / wklejania, ale jest to najprostszy sposób, jaki mogę wymyślić.

Rozwiązanie z 4 kliknięciami: (np. Przenieś wiersz 8 powyżej rzędu 5)

  1. Kliknij prawym przyciskiem numer wiersza (np. Wiersz 8), kliknij Wytnij (lub T)
  2. Kliknij prawym przyciskiem numer wiersza (np. Wiersz 5), kliknij polecenie Wstaw wycięte komórki (lub E)

Uwaga: Działa to również w przypadku przenoszenia wielu wierszy.

wilson
źródło
Jest to rozwiązanie przeznaczone tylko dla myszy, bez przeciągania i upuszczania, dzięki czemu dobrze przesuwa rzędy do dalszych pozycji, które wymagają przewijania. W przeciwnym razie odpowiedź @ kok jest bardziej elegancka.
wilson
dzięki, to też nadal działało dla mnie, kok's jest lepszy, ale iitalnie nieco dłużej, aby zrozumieć i trzeba zobaczyć przycisk granicy, chociaż nie jest to trudniejsze, trzeba się do tego
przyzwyczaić
3

Próbować:

Shift+ Space barlub kliknij myszą numer linii, aby wybrać linię

Ctrl+ Xdo cięcia

Kliknij myszką, gdzie chcesz.

Ctrl+ Vaby go wkleić

Graham
źródło
2
niepoprawna odpowiedź. to będzie zastąpić zamiast zmienić kolejność
Wilson
3

Dodaj następujące makra do osobistego skoroszytu makr i przypisz im klawisze skrótów. To zachowanie naśladuje Sublime Text's Swap Line Up i 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
tjmcewan
źródło
2

Zajmując się podobnymi przypadkami w przeszłości, w których nie mogłem po prostu sortować według wiersza, znalazłem sposób na wygenerowanie kolumny z wynikiem formuły, na której mogłem posortować.

Znalazłem bardziej bezpośrednią odpowiedź na twoje pytanie z tej strony :

Microsoft Word ma funkcję, której brakuje w Excelu. Metoda Jona polega na przeniesieniu danych do Worda, użyciu polecenia Word, a następnie wklejeniu danych z powrotem do Excela. Wykonaj następujące kroki.

  1. Skopiuj odpowiedni fragment wierszy i kolumn z arkusza kalkulacyjnego. Najlepiej zanotować rozmiar zakresu, np. 118 wierszy x 5 kolumn
  2. Wklej dane do dokumentu Microsoft Word, gdzie automatycznie staje się tabelą i zachowuje całe twoje formatowanie.
  3. W programie Word używaj mało znanej STRZAŁKI SHIFT-ALT-UP-STRZAŁKA i SHIFT-ALT-DOWN-STRZAŁKA, aby bardzo szybko przesuwać wiersze (lub wybrane ich fragmenty) w górę iw dół do woli. Wybierz jeden lub więcej wierszy. Możesz wybrać cały wiersz lub tylko jego część, jak pokazano tutaj.

    wprowadź opis zdjęcia tutaj

    Naciśnij kilka razy Shift + Alt + Strzałka w górę, aby szybko przesunąć rzędy w górę.

    wprowadź opis zdjęcia tutaj

  4. Po zsekwencjonowaniu wierszy według własnego uznania wklej je z powrotem do programu Excel, upewniając się, że nadpisałeś dokładnie ten sam rozmiar, który skopiowałeś.

jzd
źródło
Słodkie! Chciałbym, aby był to sposób w Excelu lub OneNote. // (Excel robi specjalne przeciągnięcia myszą, jak wspomniano powyżej, ale brakuje mi do tego mouse.coordination.) // Szkoda, że ​​rezygnuje się z innej dobroci Excela, takiej jak sortowanie tabel według wartości kolumn, aby uzyskać dobro słowa
Krazy Glew
2

Na komputerze Mac użyj Command+ Shiftpodczas przeciągania. Przypuszczam, że w systemie Windows powinno to być Win+ Shift.

pablol
źródło
1

Nieznaczna poprawa odpowiedzi @ wilson:

Kliknij numer wiersza prawym przyciskiem myszy (np. Wiersz 8), kliknij „t” Numer wiersza prawym przyciskiem myszy (np. Wiersz 5), naciśnij „e”

Mieszanie użycia myszy i klawiatury naprawdę dla mnie przyspiesza.

Codemonkey
źródło
1

Oto sub, który działa również dla kolumn; łączy w sobie funkcjonalność we wszystkich czterech kierunkach:

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
Micromegas
źródło
-1

To najłatwiejszy, jaki znalazłem. Naprawdę nie można przeciągać i upuszczać:

Na przykład, aby przenieść wiersz 3 przed wierszem 2:

  • kliknij prawym przyciskiem myszy wiersz 3 (na cyfrze 3 po lewej) i wybierz Wytnij
  • kliknij prawym przyciskiem myszy wiersz 2 (na cyfrze 2) i wybierz Wstaw wycięte komórki
mrudult
źródło