- 公開日:
スプレッドシートでセルを入れ替えする方法
Google スプレッドシートではセル同士は勿論、行や列を入れ替えることが出来ます。
また、関数を使用することによって行と列の並びを入れ替えることも可能です。
この記事では、スプレッドシートでセルおよび行や列を入れ替えたり、行と列の並びを入れ替える方法を分かりやすく紹介します。
スプレッドシートでセルを入れ替えする方法
Google スプレッドシートでセルを入れ替える場合、セルに対してマウス操作をしてシート上を移動させるか、Google Apps Script(GAS)でスクリプトを作成して使用します。
以下より、スプレッドシートでセルを入れ替えする方法を様々なシチュエーションに分けて詳しく解説します。
セルをマウス操作で入れ替える
Google スプレッドシートでセルをマウス操作で入れ替える場合、入れ替える対象の2つ目のセルが「空白のセル」であることが条件となります。
これは入れ替えたい1個目のセルを入れ替え先に移動すると空白のセルとなり、2個目のセルが1個目のセルに置き換わってしまうからです。
以下の記事にある「セルを移動させる方法」で、セルをマウス操作で入れ替える方法を詳しく解説しています。
セルをGASで入れ替える
Google スプレッドシートでセルをGASで入れ替える場合、メニューバーにある拡張機能からスクリプトを作成し、それを使用します。

①「拡張機能」、②「Apps Script」を順に選択します。

「新しいプロジェクト」ボタンをクリックします。

「無題のプロジェクト」という名前になっているので、後に分かりやすいように名前を変更します。
名前を変更をクリックします。

①プロジェクトタイトルを入力し、②「名前を変更」ボタンをクリックします。
プロジェクトタイトルを「セル入れ替え」としております。

下記のスクリプトをコピーして貼り付けます。
セルを2つ選択して内容を入れ替えられるマクロをカスタムメニューとして追加し、それを使用できるスクリプトです。
// 指定した2つのセルの内容を入れ替える関数
function swapCells(cell1Notation, cell2Notation) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell1 = sheet.getRange(cell1Notation);
var cell2 = sheet.getRange(cell2Notation);
// セルの内容を取得
var cell1Value = cell1.getValue();
var cell2Value = cell2.getValue();
// セルの内容を入れ替え
cell1.setValue(cell2Value);
cell2.setValue(cell1Value);
}
// カスタムメニューを追加
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('カスタムメニュー')
.addItem('セル入れ替え', 'swapCellsPrompt')
.addToUi();
}
// メニューアイテムが選択された時に実行される関数
function swapCellsPrompt() {
var ui = SpreadsheetApp.getUi();
// ユーザーに最初のセルを入力させる
var response1 = ui.prompt('最初のセルを入力してください(例: A1)');
var cell1Notation = response1.getResponseText();
if (cell1Notation) {
// ユーザーに2つ目のセルを入力させる
var response2 = ui.prompt('2つ目のセルを入力してください(例: B1)');
var cell2Notation = response2.getResponseText();
if (cell2Notation) {
swapCells(cell1Notation, cell2Notation);
ui.alert('セル ' + cell1Notation + ' と ' + cell2Notation + ' の内容を入れ替えました。');
} else {
ui.alert('無効なセルです。');
}
} else {
ui.alert('無効なセルです。');
}
}

「プロジェクトを保存」ボタンをクリックします。

現在のシートに戻り、ページを更新させるためにF5キーを押します。

メニューバーに「カスタムメニュー」が追加表示されました。
カスタムメニューをクリックします。

作成したスクリプト「セル入れ替え」が表示されています。
セル入れ替えをクリックします。

①入れ替えたい1つ目のセル名「A1」を入力し、②「OK」ボタンをクリックします。

①入れ替えたい2つ目のセル名「D5」を入力し、②「OK」ボタンをクリックします。

「OK」ボタンをクリックしてシートに戻ります。

セルの内容を入れ替えることが出来ました。
行や列を入れ替える
Google スプレッドシートで行や列といった、まとまったセルを入れ替える場合、マウス操作で入れ替えることが出来ます。
以下より、スプレッドシートで行や列を入れ替える方法を詳しく解説します。

入れ替えたい列を選択します。

列全体が選択されました。
列のアルファベット表示にマウスカーソルを合わせると、マウスポインタが手のマークに変わります。
手のマークになったら、入れ替えたい列までドラッグしてドロップします。

列を移動させることが出来ました。
入れ替えたい2つ目の列を選択します。

STEP2と同じように、2つ目の入れ替えたい列を、1つ目の列の場所へ移動します。

2つ目の列を移動させたことで、列を入れ替えることが出来ました。
行を入れ替える場合、行に応じて同様の操作を行います。
行と列の並びを関数を使用して入れ替える
Google スプレッドシートで行や列といった、まとまったセルの並びを入れ替える場合、TRANSPOSE関数を使用して行います。
以下の記事にて、行と列の並びを関数を使用して入れ替える方法を詳しく解説しています。