web-dev-qa-db-ja.com

ドラッグアンドドロップまたはは上に移動またはは下に移動してExcelの行を簡単に並べる方法は?

私は手動で並べ替えやExcelでの行を行わなければならず、カット/貼り付けを使用するのは難しすぎます。ドラッグ&ドロップを使用したり、上下に移動したり上下に移動したりするためのボタンを追加できるようなものを探しています。

137
sorin
  1. 行/列を選択してください。
  2. マウスカーソルを行/列の境界に移動して、4方向矢印カーソル(またはMacの場合はハンドカーソル)が見えるようにします。
  3. 押す Shift キーボードで行/列をクリックしてドラッグします。

の Shift key シフト対象の行/列を上書きする代わりに、その行/列を移動します。

202
kok

これはまだカット/ペースト方式ですが、私が考えることができる最も簡単な方法です。

4クリックの解決策(例:行8を行5の上に移動)

  1. 行番号(例:行8)を右クリックし、切り取り(またはをクリック) T
  2. 行番号(例:行5)を右クリックし、カットセルの挿入(またはをクリック) E

注:これは複数行を移動する場合にも機能します。

12
wilson

試してください:

Shift + Space bar または行番号をマウスでクリックして行を選択します。

Ctrl + X 切る

あなたがそれを望むところでマウスクリック。

Ctrl + V 貼り付ける

4
Graham

次のマクロを個人用マクロブックに追加し、それらにショートカットキーを割り当てます。この動作は、Sublime Textの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
3
tjmcewan

Macでは、 Command + Shift ドラッグ中私は窓でそれがあるべきであると思います Win + Shift

2
pablol

行で並べ替えることができなかった過去の同様のケースを処理する際に、並べ替えることができる式の結果を持つ列を生成する方法を見つけました。

私はあなたの質問に対するより直接的な答えをこのサイトから見つけました:

Microsoft WordにはExcelに欠けている機能があります。 Jonの方法では、データをWordに移動し、Wordコマンドを使用してからデータをExcelにペーストバックします。次の手順を実行します。

  1. あなたのスプレッドシートから関連する行と列の塊をコピーしてください。範囲のサイズ、たとえば118行×5列に注意することをお勧めします。
  2. データをMicrosoft Word文書に貼り付けると、自動的に表になり、すべての書式設定が保持されます。
  3. Wordでは、あまり知られていないSHIFT-ALT-UP-ARROWおよびSHIFT-ALT-DOWN-ARROWを使用して、自由に行(または選択した行の塊)を自由に上下にスライドさせることができます。 1つ以上の行を選択してください。ここに示すように、行全体または行の一部だけを選択できます。

    enter image description here

    Shift + Alt + UpArrowを数回押して、行を素早く上にスライドさせます。

    enter image description here

  4. 行を好きなように順序付けしたら、コピーしたのとまったく同じサイズのチャンクを上書きして、Excelに貼り付け直します。

2
jzd

これは列に対しても機能するsubです。それは4つの方向すべての機能を兼ね備えています。

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
Micromegas

これは私が見つけた最も簡単なものです。 実際にはドラッグアンドドロップできません:

たとえば、行3を行2の前に移動するには、次のようにします。

  • 行3を右クリックし(左の数字3をクリック)、を選択します。
  • 2列目(2行目)を右クリックし、切り取りセルを挿入を選択
1
mrudult

@ wilsonの答えが少し改善されました。

行番号(例:行8)を右クリック、 "t"を押す行番号(例、行5)を右クリック、 "e"

マウスとキーボードを混在させると本当にスピードが上がります。

1
Codemonkey