エクセルで離れたセルの値を上下または左右に入れ替えたいときは、単純にコピーすると元の内容を消してしまうことがあります。
安全に入れ替えるには、空いているセルを一時置き場として使う方法、コピーと貼り付けを使う方法、数式やVBAを使う方法を状況に応じて選ぶことが大切です。
少数のセルを一度だけ交換するなら、一時セルを使う方法が最も確実です。
複数行や複数列の並び替えでは、切り取りと挿入、または補助列を使うとミスを減らせます。
この記事では、離れたセルの値を上下・左右に入れ替える基本操作から、範囲ごとの交換、数式がある表での注意点まで詳しく解説します。
エクセルで離れたセルを安全に入れ替える方法
それではまず、離れた2つのセルを確実に交換する基本操作について解説していきます。
| A | B | C | D |
|---|---|---|---|
| 商品名 | 数量 | 単価 | 担当者 |
| りんご | 20 | 150 | 田中 |
| みかん | 35 | 120 | 佐藤 |
上の表では、B2の数量とD3の担当者のように、位置も内容も異なるセルを交換するケースを想定します。
空きセルを使った値の交換
離れたセルの内容を入れ替えるときは、空いているセルを仮の保管場所にする方法が基本です。
交換したいセルが2つある場合、元の値を失わないために一時セルが1つ必要になります。
たとえばB2とD3を入れ替えるなら、まず空いているF2へB2の値をコピーします。
次にD3の値をB2へコピーし、最後にF2の値をD3へコピーすれば交換が完了します。
操作順は、交換元Aを一時セルへコピー、交換元BをAへコピー、一時セルをBへコピーという流れです。
一時セルは作業後に削除しても問題ありません。
文字列、数値、日付など、セルに直接入力された値を入れ替える用途に向いています。
コピーと貼り付けによる操作
続いては、コピーと貼り付けを使って安全に交換する手順を確認していきます。
最初に交換元のセルを選択し、CtrlキーとCキーを押してコピーします。
一時セルを選択して貼り付けた後、もう一方のセルをコピーして最初のセルへ貼り付けます。
最後に一時セルの内容をコピーして、もう一方のセルへ貼り付けましょう。
書式まで含めて交換したい場合は通常の貼り付けを使い、値だけを交換したい場合は値の貼り付けを選びます。
セルの背景色、罫線、表示形式まで移動させたいかどうかを、操作前に決めておくことが重要です。
元に戻す操作と確認
続いては、交換後の確認と、間違えた場合の戻し方を確認していきます。
貼り付け直後であれば、CtrlキーとZキーを押すと直前の操作を元に戻せます。
ただし、複数回のコピーと貼り付けを行った後では、どこまで戻すか分かりにくくなるかもしれません。
そのため、重要な表を編集する前にはファイルを保存し、交換するセル番地をメモしておくと安心です。
【操作のポイント】一時セルを使う前に、交換対象が値のみか、数式や書式を含むかを確認しましょう。
上下に離れたセルを入れ替える操作
続いては、同じ列にある上下の離れたセルを入れ替える方法を確認していきます。
| A | B | |
|---|---|---|
| 商品名 | 担当者 | 備考 |
| りんご | 田中 | 通常 |
| みかん | 鈴木 | 通常 |
| ぶどう | 佐藤 | 確認中 |
同じ列のB2とB4を入れ替えるような場合でも、間にB3があるため直接ドラッグでは交換できません。
一時セルで上下の値を移動
それではまず、同じ列のセルを一時セルで入れ替える方法について解説していきます。
B2を空いているセルへコピーし、B4をB2へ、最後に一時セルをB4へ貼り付けます。
上下方向の交換でも、基本の考え方は離れたセル同士の交換と同じです。
作業中に隣の列を巻き込まないよう、コピーする範囲は必ず1セルずつ確認しましょう。
複数セルを選択した状態で貼り付けると、意図しない範囲に値が入る場合があります。
切り取りと挿入を使う場合
続いては、行単位で位置を変えたい場合の切り取り操作を確認していきます。
セル単体ではなく、商品名から備考までをまとめて移動したいときは、該当行の範囲を選択します。
CtrlキーとXキーで切り取り、移動先の行番号を右クリックして、切り取ったセルの挿入を選びます。
この操作では、移動先の行が下へずれるため、単純な交換ではなく並び順を変更する処理になります。
レコード全体を動かす場合は、セル単位ではなく行全体を同じ範囲で扱うことが重要です。
並び替えとの使い分け
続いては、上下の入れ替えと並び替えの使い分けを確認していきます。
2件だけを交換するなら一時セルによる操作が分かりやすく、件数が多いなら並び替え機能が便利です。
たとえば担当者名や日付順に大量の行を並べ直すなら、データタブの並べ替えを使うほうが効率的です。
【操作のポイント】同じ列だけを交換するのか、行全体の順番を変えるのかを先に切り分けましょう。
左右に離れたセルを入れ替える操作
続いては、同じ行または別の行にある左右の離れたセルを入れ替える操作を確認していきます。
| A | B | C | D |
|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上 |
| りんご | 20 | 150 | 3000 |
左右にあるセルを交換する場合は、列見出しの意味が変わらないかも確認する必要があります。
値だけを左右で交換する手順
それではまず、数値や文字列だけを左右で交換する手順について解説していきます。
B2とD2を交換する場合は、空いているセルへB2をコピーし、D2をB2へ移し、最後に一時セルをD2へ戻します。
商品一覧の途中にある値だけを修正したい場合は、値の貼り付けを使うと書式を維持できます。
値のみ貼り付けでは、セルの表示形式、背景色、罫線、コメントなどを移さずに内容だけを交換できます。
計算表の見た目を保ちたいときに便利な方法です。
列全体を左右で入れ替える手順
続いては、数量列と単価列のように列ごと交換する手順を確認していきます。
列全体を選択してコピーする場合も、一時列を1つ確保します。
列を丸ごと交換するときは、見出し行を含めるかどうかをあらかじめ決めましょう。
見出しまで一緒に入れ替えると、列名とデータの関係を保ったまま位置だけを変えられます。
ドラッグ操作で移動する場合
続いては、マウス操作で列やセルを移動する場合を確認していきます。
選択範囲の枠線にポインターを置き、Shiftキーを押しながらドラッグすると、切り取り挿入として移動できます。
ただし、この操作は既存のセルを押し出すため、2つのセルをそのまま交換する操作ではありません。
【操作のポイント】左右の交換では、値の位置だけでなく、見出し、数式、参照先も確認しましょう。
数式が入ったセルを交換するときの注意点
続いては、計算式を含むセルを入れ替えるときの注意点について解説していきます。
| A | B | C | D |
|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上 |
| りんご | 20 | 150 | =B2*C2 |
数式セルをコピーすると、参照先が相対参照として自動調整されることがあります。
相対参照による数式の変化
それではまず、セルの移動で数式が変化する仕組みについて解説していきます。
D2に入力された=B2*C2は、数量と単価を掛け合わせて売上を求める数式です。
売上 = 数量 × 単価
D2の数式では、売上 = B2 × C2 として計算します。
この数式を別の位置へコピーすると、参照する列や行もコピー先に合わせて変わります。
数式そのものを入れ替えたい場合と、計算結果の数値だけを入れ替えたい場合では、貼り付け方法が異なります。
値の貼り付けによる計算結果の固定
続いては、数式の結果だけを固定して交換する方法を確認していきます。
数式セルをコピーし、貼り付けオプションから値を選ぶと、計算式ではなく表示された結果だけを貼り付けられます。
たとえばD2の3000だけを別セルへ移したいなら、値の貼り付けが適しています。
一方で、後から数量や単価が変わっても計算を更新したい場合は、数式を保持する必要があります。
値の貼り付け後は数式が消えるため、元の計算式へ戻すにはCtrlキーとZキーまたはバックアップが必要です。
絶対参照とエラーの確認
続いては、絶対参照と数式エラーの確認について解説していきます。
$B$2のようにドル記号が付いた絶対参照は、コピー先が変わっても参照先を固定します。
数式を交換した後は、#REF!、#VALUE!、#DIV/0!などのエラーが表示されていないか確認しましょう。
【操作のポイント】数式セルは、数式を移すのか計算結果だけを移すのかを明確にしてから操作します。
複数セルと範囲を入れ替える方法
続いては、複数セルや表の範囲をまとめて入れ替える方法を確認していきます。
| A | B | C |
|---|---|---|
| 東京 | 120 | 東日本 |
| 大阪 | 95 | 西日本 |
| 福岡 | 80 | 九州 |
たとえばA2:B2とA4:B4のように、同じ大きさの範囲同士を交換するケースです。
同じ大きさの範囲を一時範囲で交換
それではまず、複数セルの範囲を安全に交換する方法について解説していきます。
最初の範囲を空いた場所へコピーし、2つ目の範囲を最初の位置へコピーします。
その後、一時範囲を2つ目の位置へコピーすれば、範囲全体を入れ替えられます。
交換する2つの範囲は、行数と列数をそろえることが基本です。
補助列を使った順番の変更
続いては、複数行の順番を計画的に変更する補助列の使い方を確認していきます。
表の右側に順序番号を入力し、入れ替えたい行へ新しい番号を設定します。
その後、データタブの並べ替えで補助列を昇順にすると、行全体を崩さずに並び替えられます。
補助列には1、2、3のような連番だけでなく、10、20、30のように余裕を持たせた番号を使う方法もあります。
途中へ新しい順番を追加しやすくなるため、繰り返し編集する表に便利です。
フィルターが設定された表での操作
続いては、オートフィルターが設定された表を操作するときの注意点を確認していきます。
フィルターで一部の行が非表示になっている場合、見えているセルだけを移動するとデータの対応関係が崩れることがあります。
フィルター中の表では、可能ならフィルターを解除してから範囲交換を行いましょう。
【操作のポイント】複数セルを交換する際は、範囲の大きさと、非表示行の有無を必ず確認します。
ショートカットとVBAによるセル交換
続いては、繰り返し行うセル交換を効率化するショートカットとVBAについて解説していきます。
| 操作 | ショートカット | 用途 |
|---|---|---|
| コピー | Ctrl + C | 一時セルへの保存 |
| 切り取り | Ctrl + X | 位置の移動 |
| 元に戻す | Ctrl + Z | 誤操作の取消 |
コピー操作を速くするショートカット
それではまず、基本ショートカットを使った効率的な操作について解説していきます。
マウスでリボンをクリックするよりも、CtrlキーとCキー、CtrlキーとVキーを使うほうが素早く作業できます。
複数のセルを入れ替える作業では、コピー元と貼り付け先を間違えないよう、名前ボックスでセル番地を確認する習慣が役立ちます。
VBAで2つのセルを交換するコード
続いては、決まったセルを繰り返し交換するVBAの例を確認していきます。
サンプルでは、1行目をヘッダーとし、B2とD2の内容を交換します。
Sub SwapCells()
Dim tempValue As Variant
tempValue = Range("B2").Value
Range("B2").Value = Range("D2").Value
Range("D2").Value = tempValue
End Sub
tempValueは、一時セルと同じ役割を果たす変数です。
このコードは値だけを交換するため、書式や数式を含めて入れ替えたい場合は別の指定が必要です。
VBA実行前の保存と対象確認
続いては、VBAを実行する前に確認したいポイントについて解説していきます。
マクロを実行すると元に戻す操作が使えない場合があるため、実行前にファイルを保存しましょう。
Rangeのセル番地を誤ると、意図しないデータを交換してしまうため注意が必要です。
VBAで複数範囲を交換する場合は、対象範囲の行数と列数が同じであることを確認してから実行します。
【操作のポイント】VBAは定型作業に便利ですが、最初はコピーしたテスト用シートで動作を確認しましょう。
まとめ エクセルでセルを上下・左右に入れ替える方法(離れたセル)
エクセルで離れたセルを上下・左右に入れ替えるときは、空いているセルや範囲を一時置き場にする方法が基本です。
セルの値だけを交換するのか、数式、書式、コメントまで含めて移動するのかによって、コピー方法や貼り付けオプションを使い分けましょう。
数式がある表では、相対参照による計算式の変化を確認することが特に重要です。
少数のセルなら一時セル、多数の行なら補助列と並び替え、繰り返す作業ならVBAというように、表の規模に合わせて選ぶと効率よく編集できます。
操作前の保存と、操作後の表示内容の確認を習慣にして、データを安全に入れ替えていきましょう。