- 公開日:
スプレッドシートの空白セルを詰める方法
Google スプレッドシートで表やリストの管理をしている際、入力されていないセル(空白のセル)が多くなり、シートが見づらくなったことはありませんか?
スプレッドシートでは、選択した範囲にある空白のセルを削除し、入力されているセルを詰め、見やすくまとまりのある形へ簡単な操作ですることが出来ます。
この記事では、空白のセルを詰める方法を分かりやすく紹介します。
スプレッドシートの空白セルを詰める方法
Google スプレッドシートで空白のセルを詰める場合、主に下記の方法で行うことが出来ます。
- フィルタ機能を使用する
- QUERY関数を使用する
- GASでスクリプトを作成する
以下より、それぞれの方法を詳しく解説します。
フィルタ機能を使用して空白のセルを詰める
フィルタ機能を使用して空白のセルを詰める場合、メニューバーにあるデータから行います。
こちらの方法を用いると、非常に簡単な操作である反面、空のセルと付随した行のセルも詰められてしまうため、複数列にランダムで空白のセルがある場合は向きません。
以下より、フィルタ機能を使用して空白のセルを詰める方法を詳しく解説します。

空白のセルを詰めたい範囲を選択します。

メニューバーにある①「データ」、②「フィルタ」を作成を順に選択します。
以下のショートカットキーでも、フィルタを作成することが出来ます。
OS | ショートカットキー |
---|---|
Windows | Alt+D+F (Google Chrome) Alt+Shift+D+F (その他ブラウザ) |
Mac | Option+D+F (Google Chrome) Option+Shift+D+F (その他ブラウザ) |

フィルタのマークをクリックします。

①(空白)をクリックしてチェックマークを外し、②「OK」ボタンをクリックします。

選択した範囲内にある空白のセルを詰めることが出来ました。
付随する行のセルも詰められるため、1列のみの範囲に対して行うには最適です。
QUERY関数を使用して空白のセルを詰める
QUERY関数とは、指定したデータを抽出し、そのデータに対して条件を指定する関数です。
QUERY関数は「=QUERY(抽出する範囲,where条件範囲の列=条件)」のように設定します。
以下より、QUERY関数を使用して空白のセルを詰める方法を詳しく解説します。

空白のセルを詰めたデータを表示したいセルを選択します。
この記事では、予め空白のセルを詰めたデータを表示する行を、QUERY関数行として用意しています。

「=QUERY( 」と入力します。

空白のセルを詰めたい範囲を選択します。
選択した範囲が数式に反映されました。

続けて「,"where A !=' ' ")」と入力します。
この数式は、「=QUERY(A2からA11の範囲で,A列にある=空白を抽出)」を意味します。

数式を確定させるために、Enterキーを押します。

空白のセルが詰められて表示されました。
表示された範囲をコピーするために、Ctrlキーを押しながらCキーを押します。

数式で割り出されたデータを貼り付けるために、CtrlキーとShiftキーを押しながらVキーを押します。

列Aにおける空白のセルを詰めることが出来ました。

続けて、列B・Cに同様の操作を行います。
QUERY関数行に、「=QUERY(B2:B11,"where B !=' ' ")」と入力します。

列Bのように、入力されているデータが数字の場合、「エラー クエリが空の出力で完了しました。」と表示される場合があります。
この場合は、数字が入力されている列Bの範囲を選択します。

①「表示形式」、②「数字」、③「書式なしテキスト」の順に選択します。
以下のショートカットキーでも、数字の表示形式を書式なしテキストにすることが出来ます。
OS | ショートカットキー |
---|---|
Windows | Alt+O+N+X (Google Chrome) Alt+Shift+O+N+X (その他ブラウザ) |
Mac | Option+O+N+X (Google Chrome) Option+Shift+O+N+X (その他ブラウザ) |

エラーが解消され、空白のセルが詰められて表示されました。

列B・Cに、列Aと同じような処理を行い、空白のセルを詰めて表示することが出来ました。
リストにある余分な行を選択して右クリックします。

「行を8-11を削除」をクリックします。

リスト内にある空白のセルを、すべて詰めることが出来ました。
GASでスクリプトを作成して空白のセルを詰める
Google Apps Script(GAS)を作成して、空白のセルを詰める場合、メニューバーにある拡張機能から行います。
GASでスクリプトを作成、保存しておけば、以降は簡単に空白のセルを詰めることができるので便利です。
以下より、GASでスクリプトを作成して空白のセルを詰める方法を詳しく解説します。

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

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

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

①プロジェクトタイトルを入力し、②「名前を変更」ボタンをクリックします。
この記事では、プロジェクトタイトルを「空白のセルを詰める」としております。

下記のGASスクリプトをコピーして貼り付けます。
選択した範囲内の各列を検査し、空白のセルを見つけると行を詰めるスクリプトです。
function compactEmptyCellsInSelectedRange() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var selectedRange = sheet.getActiveRange();
var numRows = selectedRange.getNumRows();
var numCols = selectedRange.getNumColumns();
for (var j = 1; j <= numCols; j++) {
var columnValues = selectedRange.getSheet().getRange(selectedRange.getRow(), selectedRange.getColumn() + j - 1, numRows, 1).getValues();
var compactedValues = [];
for (var i = 0; i < numRows; i++) {
if (columnValues[i][0] !== '') {
compactedValues.push([columnValues[i][0]]);
}
}
var targetRange = selectedRange.offset(0, j - 1, compactedValues.length, 1);
targetRange.setValues(compactedValues);
}
}

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

現在のシートに戻り、拡張機能をクリックします。

①「マクロ」、②「マクロをインポート」を順に選択します。

作成したスクリプトが表示されています。
「関数を追加」ボタンをクリックします。

チェックマークに変わり、マクロをインポートすることが出来ました。
閉じるをクリックして、メニューを閉じます。

空白のセルを詰めたい範囲を選択します。

①「拡張機能」、②「マクロ」、③「追加したマクロ名(compactEmptyCellsInSelectedRange)」の順に選択します。

空白のセルが詰められました。
リストにある余分な行を選択して右クリックします。

「行を8-11を削除」をクリックします。

リスト内にある空白のセルを、すべて詰めることが出来ました。