office

エクセルで行を上下に入れ替えする簡単な方法は?便利なショートカットを調査!

エクセルで名簿や売上リスト、タスク管理表などを作成した後で、「この行とあの行の順番を入れ替えたい」と感じることは少なくないでしょう。リストの優先順位が変わったり、項目をカテゴリごとにまとめ直したくなったりと、理由は様々です。しかし、一行ずつコピーして、別の場所に行を挿入し、元の行を削除する、といった作業を繰り返すのは非常に手間がかかります。もっと効率的に、エクセルで行を上下に入れ替えする簡単な方法はないものでしょうか。実は、エクセルにはマウスのドラッグ操作や、あまり知られていない便利なショートカットを使った効率的な入れ替え方法が存在します。エクセルで行を入れ替えドラッグする操作を覚えれば、作業スピードは格段に向上するかもしれません。この記事では、基本的な一行の入れ替えから、エクセルで複数行を入れ替える方法、さらにはエクセルで列を左右に入れ替える応用技まで、様々なテクニックを網羅的に解説していきます。

この記事を読むことで、あなたは以下の点を理解できるようになります。

・マウス操作だけで直感的に行を入れ替える最も速い方法

・コピー&ペーストよりも確実で速い、切り取りと挿入のテクニック

・作業効率を上げるエクセルの行入れ替え上下のショートカットキー

・行の入れ替えができない場合の、原因と具体的なチェックポイント

エクセルで行を上下に入れ替えする基本的な操作とショートカット

ここでは、エクセルで行を上下に入れ替えするための、まず覚えておきたい基本的な操作方法やショートカットについて説明していきます。これらのテクニックを習得するだけで、日々のエクセル作業の効率が大きく変わる可能性を秘めています。簡単な操作から、少し応用的なものまで、順に見ていきましょう。

Shiftキーを使ったドラッグアンドドロップでの行入れ替え

切り取りと挿入を使った確実な行の入れ替え方法

便利なエクセルの行入れ替え上下ショートカットとは

エクセルで複数行をまとめて入れ替えるテクニック

エクセルで列を左右に入れ替える応用操作

エクセルで行の入れ替えができないときのチェック項目

Shiftキーを使ったドラッグアンドドロップでの行入れ替え

エクセルで行を素早く、そして直感的に入れ替える最も簡単な方法の一つが、Shiftキーとマウスのドラッグアンドドロップを組み合わせた操作です。この方法を知っているかどうかで、作業スピードに大きな差がつくと言っても過言ではありません。コピーして挿入して削除、という一連の面倒な手順を、たった一度のマウス操作で完結させることができます。

まず、入れ替えたい行の行番号(シートの左端にある1,2,3…という数字の部分)をクリックして、行全体を選択します。次に、選択した行の境界線(例えば、選択した行の上辺や下辺)にマウスポインターを合わせます。すると、ポインターの形が通常の白い十字から、上下左右の矢印がついた十字の形に変わるはずです。

このポインターの形が変わったことを確認したら、キーボードの「Shift」キーを押したまま、マウスの左ボタンでクリックし、そのまま上下の好きな位置までドラッグしていきます。ドラッグ中は、緑色の太い線が挿入先の目安として表示されるので、入れ替えたい目的の場所でマウスのボタンを離します。すると、選択していた行が、上書きされることなく指定した位置にスライドして挿入され、元々そこにあった行は自動的にずれてくれます。

このエクセルで行を入れ替えドラッグする操作は、とにかくスピーディーなのが最大のメリットです。ただし、マウス操作が苦手な場合や、非常に広大なシートで遠い場所へ移動させたい場合には、少し操作しづらいと感じるかもしれません。そのような場合は、次にご紹介する別の方法を試してみるのが良いでしょう。

切り取りと挿入を使った確実な行の入れ替え方法

マウスのドラッグ操作が苦手な方や、より確実に一行ずつ操作したいと考える方にとって、昔からある「切り取り」と「挿入」を組み合わせた方法は非常に有効です。この方法は、前述のShiftキーを使ったドラッグ操作と行っていることは本質的に同じですが、操作がキーボードと右クリックメニューで完結するため、マウスの細かな動きを要求されません。

手順は以下の通りです。まず、移動させたい行の行番号をクリックして、行全体を選択します。次に、その選択した行の上で右クリックし、表示されたメニューから「切り取り」を選択します。あるいは、行を選択した状態でショートカットキー「Ctrl」+「X」を押しても同様に切り取りができます。切り取られた行は、点線の枠で囲まれた状態になります。

続いて、移動先の位置を決めます。例えば、10行目を5行目の上に移動させたいのであれば、移動先となる5行目の行番号をクリックして選択します。そして、選択した5行目の上で右クリックし、メニューの中から「切り取ったセルの挿入」を選択します。この「挿入」を選ぶのがポイントです。単なる「貼り付け」を選ぶと、移動先の行が上書きされて消えてしまうため、必ず「切り取ったセルの挿入」を選んでください。

この操作を行うと、切り取った行が指定した位置に挿入され、元々あった行は下へ一つシフトします。結果として、行が綺麗に入れ替わることになります。この方法は、ドラッグ操作のように画面をスクロールさせながら移動先を探す必要がないため、特にデータ量が多い広大なリスト内での行の入れ替えにおいて、目的の場所へ正確に移動させやすいというメリットがあるかもしれません。

便利なエクセルの行入れ替え上下ショートカットとは

エクセル作業の効率化を追求する上で、ショートカットキーの活用は欠かせません。エクセルの行入れ替え上下ショートカットとして、一連の操作をキーボードだけで完結させる方法を知っておくと、マウスに手を伸ばす必要がなくなり、思考を中断させずに作業を続けられます。

最も代表的で実用的なショートカットは、前述した「切り取りと挿入」の操作をキーボードだけで行う組み合わせです。まず、入れ替えたい行をキーボードで選択します。カーソルをその行のどこかに置いた状態で、「Shift」+「Space」キーを押すと、行全体が選択できます。

次に行を切り取るために、「Ctrl」+「X」キーを押します。これで選択した行がクリップボードに切り取られます。

そして、移動先の行へカーソルを移動させ(矢印キーなどで)、再び「Shift」+「Space」キーで挿入したい先の行全体を選択します。最後に、ここが最も重要なポイントですが、「Ctrl」キーと「Shift」キーを押しながら「+」キー(テンキーではなく、標準キーボードの上部にあるものが望ましい)を押します。これが「切り取ったセルの挿入」を実行するショートカットになります。この一連の流れを覚えれば、キーボードから手を離すことなく、素早く行を入れ替えることが可能になります。

ちなみに、一部のアプリケーションや特定の状況(例えばアウトライン表示など)では、「Alt」+「Shift」+「↑」または「↓」で行を上下に移動できることがありますが、標準のExcelシートではこのショートカットは通常機能しません。そのため、現時点では「切り取り」と「挿入」のショートカットの組み合わせが、最も汎用性が高く便利なエクセル行入れ替えショートカットと言えるでしょう。

エクセルで複数行をまとめて入れ替えるテクニック

エクセルでリストを整理していると、一行だけでなく、複数の行をまとめて別の場所に移動させたい場面が頻繁に発生します。例えば、関連するプロジェクトのタスクをグループとしてまとめ直したり、特定のカテゴリに属するデータを一箇所に集めたりする場合です。このような時、エクセルで複数行を入れ替える方法を知っていれば、作業効率は劇的に向上します。

やり方は、一行を入れ替える場合とほとんど同じで、非常に簡単です。ポイントは、最初に複数の行を正しく選択することです。連続した複数行を入れ替えたい場合は、まず先頭の行の行番号をクリックし、次にキーボードの「Shift」キーを押しながら、最後の行の行番号をクリックします。すると、その間のすべての行が一度に選択できます。

一方、離れた場所にある複数の行(例えば、3行目と7行目と12行目など)をまとめて移動させたい場合は、「Ctrl」キーを使います。最初の行番号をクリックした後、「Ctrl」キーを押しながら、追加で選択したい行の行番号を次々にクリックしていきます。これで、飛び飛びの行をグループとして選択することが可能です。

複数の行を選択できたら、あとは一行の場合と全く同じです。選択した行のいずれかの境界線にポインターを合わせ、「Shift」キーを押しながらドラッグアンドドロップする。あるいは、選択範囲内で右クリックして「切り取り」(またはCtrl+X)を選び、移動先の行を選択して「切り取ったセルの挿入」(またはCtrl+Shift++)を実行する。どちらの方法でも、選択した複数の行が、そのまとまりを維持したまま指定した場所へ綺麗に移動します。このテクニックは、データ整理の時間を大幅に短縮してくれる強力な武器となるはずです。

エクセルで列を左右に入れ替える応用操作

これまで行の上下の入れ替えについて見てきましたが、エクセルでは全く同じ要領で、列を左右に入れ替えることも可能です。表の構成を変更したいとき、例えば「氏名」の列と「社員番号」の列の順番を逆にしたい、といった場合にこのエクセルで列を左右に入れ替えるテクニックは非常に役立ちます。

操作方法は、行の入れ替えをマスターしていれば、すぐに理解できるでしょう。最も直感的なのは、やはりShiftキーとドラッグを組み合わせた方法です。まず、移動させたい列の列番号(シートの上部にあるA,B,C…というアルファベットの部分)をクリックして、列全体を選択します。

次に、選択した列の境界線(左辺または右辺)にマウスポインターを合わせます。すると、行の時と同様に、ポインターが上下左右の矢印がついた十字の形に変化します。この状態で「Shift」キーを押しながらマウスの左ボタンでクリックし、左右の移動させたい位置までドラッグします。挿入位置を示す緑色の太い線が表示されるので、目的の場所でマウスのボタンを離せば、列の入れ替えは完了です。

もちろん、「切り取り」と「切り取ったセルの挿入」を使う方法も同様に適用できます。列を選択して「Ctrl」+「X」で切り取り、移動先の列を選択して「Ctrl」+「Shift」+「+」で挿入すれば、キーボード操作だけでも列の入れ替えが可能です。

行の上下移動と列の左右移動が、全く同じ概念と操作で実現できるということを覚えておくと、エクセルでの表作成やデータ編集の自由度が格段に上がります。この一貫性のある操作性は、エクセルの優れたデザインの一つと言えるかもしれません。

エクセルで行の入れ替えができないときのチェック項目

これまで紹介してきた方法を試しても、なぜかエクセルで行入れ替えができない、という状況に陥ることがあります。その場合、焦らずにいくつかの項目をチェックすることで、原因を特定できる可能性が高いです。

最も一般的な原因の一つが「セルの結合」です。入れ替えようとしている行、あるいはその周辺の行に結合されたセルが存在すると、Excelは行の構造を正しく操作できなくなり、ドラッグ操作や挿入操作がブロックされてしまいます。まずは、入れ替えたい範囲に結合されたセルがないかを確認し、もしあれば「ホーム」タブの「セルを結合して中央揃え」ボタンのプルダウンから「セル結合の解除」を選択して、結合を解除してから再度試してみてください。

次に考えられるのが「シートの保護」です。重要なデータや数式を誤って変更しないようにシートが保護されている場合、行の挿入や削除といった構造の変更を伴う操作は基本的に許可されません。リボンの「校閲」タブを確認し、「シート保護の解除」というボタンが表示されていれば、シートが保護されている証拠です。これをクリックして保護を解除(パスワードが設定されていれば入力)する必要があります。

また、「テーブル」機能を使っている場合、フィルタが適用されている状態では行の入れ替えが制限されることがあります。一度フィルタをクリアしてから操作を試みると、うまくいくかもしれません。さらに、古いバージョンのExcelで作成された「共有ブック」機能が有効になっている場合も、行の入れ替えを含む一部の編集が制限されることがあります。これらの点を順に確認していくことで、行の入れ替えができない原因のほとんどを突き止めることができるでしょう。

エクセルで行を上下に入れ替えする応用テクニックと関数活用

ここでは、エクセルで行を上下に入れ替えするための、より応用的なテクニックや関数を活用した方法について説明していきます。単純な入れ替えだけでなく、複雑な並べ替えや動的なリスト作成など、より高度なデータ操作が求められる場面で役立つかもしれません。順に見ていきましょう。

並べ替え機能を使った柔軟な行の入れ替え

エクセルで離れたセル同士を入れ替えるには

FILTER関数を使った動的な行の入れ替え

SORT関数で実現するエクセルの行入れ替え上下

マクロ(VBA)で行の入れ替えを自動化する

エクセルで行を上下に入れ替えする方法の総まとめ

並べ替え機能を使った柔軟な行の入れ替え

Shiftキーを使ったドラッグや、切り取りと挿入による行の入れ替えは、数行を素早く移動させるのには非常に便利です。しかし、リスト全体を大幅に再構成したい場合や、複数の行を複雑な順番に入れ替えたい場合には、これらの手作業では時間がかかり、ミスも発生しやすくなります。そのような状況で絶大な効果を発揮するのが、Excelの基本的な機能である「並べ替え(ソート)」です。

このテクニックの 핵심は、「作業列」を用意することです。まず、既存の表の隣の空いている列(例えば、A列からD列までデータがあればE列)を作業列として使います。そして、その列に、最終的に並べたい行の順番を数字で入力していきます。例えば、現在10行目にあるデータを一番上に持ってきたいのであれば、10行目の作業列セルに「1」と入力します。次に上に持ってきたい行には「2」、その次には「3」…といった具合に、希望の順序を示す連番を振っていきます。

全ての行に希望の順番を割り振ることができたら、データ範囲内のいずれかのセルを選択し、リボンの「データ」タブから「並べ替え」をクリックします。すると、「並べ替え」ダイアログボックスが表示されます。ここで、「最優先されるキー」として、先ほど連番を入力した作業列を選択します。そして、「並べ替えのキー」は「セルの値」、「順序」は「昇順」(あるいは小さい順)に設定して「OK」をクリックします。

すると、Excelは作業列の数字が小さいものから順に、行全体を自動で並べ替えてくれます。これにより、どんなに複雑な順番の入れ替えでも、一度の操作で正確に完了させることができます。作業が完了すれば、使った作業列は削除しても問題ありません。この方法は、大規模なリストの整理や再構築において、非常に強力かつ確実な手段となります。

エクセルで離れたセル同士を入れ替えるには

これまで解説してきたのは、行全体や列全体を入れ替える方法でした。しかし、時にはもっとピンポイントに、エクセルで離れたセルを入れ替えたい、というニーズがあるかもしれません。例えば、A1セルに入っている値と、D10セルに入っている値を、互いに入れ替えたい、といったケースです。

残念ながら、Excelには、このような離れた二つのセルの値をワンクリックで交換(スワップ)するような直接的な機能は標準で用意されていません。行や列のように、Shiftキーを押しながらドラッグして入れ替える、という操作はセル単位では機能しないのです。

では、どのように対処すればよいのでしょうか。最も基本的で確実な方法は、一時的な「避難場所」となるセルを使うことです。手順は以下のようになります。

  1. まず、空いているセル(例えばE1セル)を避難場所として決めます。
  2. 入れ替えたいセルの一つ(例えばA1セル)の値をコピーし、避難場所のセル(E1)に貼り付けます。これでA1の値が一時的にバックアップされます。
  3. 次にもう一方のセル(D10セル)の値をコピーし、元のセル(A1セル)に貼り付けます。これでA1にはD10の値が入りました。
  4. 最後に、避難場所のセル(E1)にバックアップしておいた元のA1の値をコピーし、D10セルに貼り付けます。

この3段階のコピー&ペーストを行うことで、結果的に二つの離れたセルの値を入れ替えることができます。少し手間がかかるように感じるかもしれませんが、これが最もシンプルで間違いのない方法です。もし、このようなセルの入れ替えを頻繁に行う必要がある場合は、後述するマクロ(VBA)を使って、この一連の操作を自動化するボタンを作成するという解決策も考えられます。

FILTER関数を使った動的な行の入れ替え

近年のExcel(主にMicrosoft365やExcel2021)に搭載された「動的配列関数」は、データの操作方法に革命をもたらしました。その中でもFILTER関数は、行の「入れ替え」とは少し異なりますが、結果的に行の表示順を自在にコントロールするという目的を、非常に洗練された形で実現してくれます。

FILTER関数の基本的な機能は、指定した範囲の中から、特定の条件に一致するデータだけを抽出して表示するというものです。この関数の強力な点は、元のデータを一切変更しない、というところにあります。元のリストはそのまま安全に保持しておきながら、別の場所に、必要な情報だけを、望む形で表示するレポートのようなものを作成できるのです。

例えば、大きなタスクリストの中から「担当者が自分で、かつ優先度が”高”のものだけ」を抜き出して表示したい、といった場合にFILTER関数は威力を発揮します。数式を入力するだけで、条件に合う行が自動的にリストアップされます。

これを行の入れ替えの代替案として考えると、例えば「表示順」という列を元のリストに用意しておき、そこに数字を入力します。そして、FILTER関数と後述するSORT関数を組み合わせることで、「表示順が入力されている行だけを、その番号順に並べ替えて表示する」といったことが可能になります。元のリストの行を物理的に動かすのではなく、数式によって表示結果を制御するため、非常に柔軟で非破壊的なデータ管理が実現できます。

この方法は、元のマスターデータを綺麗に保ちつつ、様々な視点からデータを並べ替えて見たいダッシュボードやレポートを作成する際に、極めて有効なアプローチと言えるでしょう。

SORT関数で実現するエクセルの行入れ替え上下

エクセル行の入れ替えを上下で関数を使って、しかもスマートに行いたい、という要望に最も直接的に応えてくれるのが、SORT関数です。これもFILTER関数と同様に、比較的新しいバージョンのExcelで利用可能な動的配列関数の一つです。この関数の登場により、これまで作業列と「並べ替え」機能を使って行っていた操作の多くが、単一の数式で実現できるようになりました。

SORT関数の基本的な使い方は非常にシンプルです。=SORT(配列, [並べ替えインデックス], [並べ替え順序])という書式で記述します。「配列」には、並べ替えたい元のデータ範囲全体を指定します。「並べ替えインデックス」には、並べ替えの基準としたい列が、指定した配列の左から何番目にあたるかを数字で指定します。「並べ替え順序」には、「1」または省略で昇順、「-1」で降順を指定します。

例えば、A2:D100の範囲のデータを、C列(優先度)の昇順で並べ替えたい場合は、=SORT(A2:D100, 3, 1)と入力するだけです。すると、数式を入力したセルを起点として、並べ替えられた結果の表全体が自動的に展開(スピル)されます。

この関数の素晴らしい点は、元のデータには一切手を加えないことです。元のリストはそのままに、並べ替えた結果を別の場所に表示できます。また、並べ替えの基準となる列の値が変更されれば、SORT関数の結果もリアルタイムで自動的に更新されます。これにより、手作業で都度並べ替えを実行する必要がなくなり、常に最新の順序でデータを確認することが可能になります。SORT関数は、これからのExcelでのデータ整理における標準的な手法となっていく可能性を秘めた、非常に強力なツールです。

マクロ(VBA)で行の入れ替えを自動化する

これまで紹介してきた手動の操作や関数は非常に便利ですが、もし特定の行の入れ替えパターンを、毎日、あるいは毎週のように繰り返す必要がある場合、その操作自体が定型業務となってしまいます。そのような場合に最終手段として考えられるのが、マクロ(VBA)を活用した「自動化」です。

マクロを使えば、「選択した行を一つ上へ移動する」「Aの行とBの行を入れ替える」といった一連の操作をプログラムとして記録・記述し、ボタン一つで実行できるようになります。これにより、ヒューマンエラーを防ぎ、誰が操作しても同じ結果を保証し、作業時間を大幅に短縮することが可能です。

例えば、「選択した行を一つ上の行と入れ替える」という簡単なマクロを考えてみましょう。VBAのコードとしては、Selection.Cutで選択行を切り取り、Selection.Offset(-1, 0).Selectで一つ上の行に移動し、Selection.Insert Shift:=xlDownで挿入する、といった流れを記述することになります。これを「マクロの記録」機能を使って一度操作を記録し、少し手直しするだけでも、実用的なマクロを作成できることがあります。

作成したマクロは、リボンの「開発」タブから実行できるほか、「ボタン」や「図形」をシート上に配置し、それにマクロを登録することもできます。こうすれば、プログラミングの知識がない他のユーザーでも、そのボタンをクリックするだけで複雑な行の入れ替え操作を実行できるようになります。

もちろん、VBAには学習コストが必要ですが、定型的な繰り返し作業に多くの時間を費やしていると感じるならば、マクロによる自動化に挑戦してみる価値は十分にあると言えるでしょう。それは、単純作業から解放され、より創造的な業務に時間を使うための強力な投資となるかもしれません。

エクセルで行を上下に入れ替えする方法の総まとめ

今回はエクセルで行を上下に入れ替えする方法についてお伝えしました。以下に、本記事の内容を要約します。

・最も直感的なのはShiftキーを押しながらのドラッグアンドドロップ

・行番号を選択し境界線をShift+ドラッグで移動できる

・「切り取り」と「切り取ったセルの挿入」は確実な方法

・切り取りはCtrl+X、挿入はCtrl+Shift++がショートカット

・複数行の入れ替えは連続・不連続選択のどちらも可能

・列の左右入れ替えも行の上下入れ替えと全く同じ操作で実現

・セルの結合があると行の入れ替えができない主な原因となる

・シートが保護されていると行構造の変更は基本的に不可

・「並べ替え」機能と作業列を使えば複雑な入れ替えも一度で完了

・離れたセル同士の直接的な入れ替え機能は標準では存在しない

・離れたセルの交換は一時的な待避セルを使い3ステップで行う

・SORT関数は元のデータを変更せずに関数で並べ替えを実現する

・FILTER関数は条件に合う行だけを抽出し表示順を制御できる

・動的配列関数はMicrosoft365などで利用可能な新しい機能

・繰り返し行う入れ替え作業はマクロ(VBA)での自動化が有効

いかがでしたでしょうか。エクセルで行を入れ替える方法は、一つではありません。単純な手作業から、ショートカット、応用機能、そして関数やマクロに至るまで、状況に応じた様々な選択肢が存在します。この記事が、あなたのデータ整理作業をより速く、より快適にするための一助となれば幸いです。

CTAサンプル

これはCTAサンプルです。
内容を編集するか削除してください。