- 作成日 : 2025年12月2日
スプレッドシートで空白行を削除するには?効率的なデータクリーニングの実践方法
スプレッドシートで空白行を削除することで、データの集計や分析の精度が向上します。本記事では、Googleスプレッドシートやエクセルでフィルタ機能を使った簡単な削除方法から、関数による自動判定、Google Apps Script(GAS)での一括処理まで詳しく解説します。
大量データの空白行除去や、定期的なデータクリーニングを効率化する実践的なテクニックを紹介します。
目次
エクセルとGoogleスプレッドシートの空白行の削除機能の違い
エクセル(Excel)では、「ホーム」タブの「検索と選択」から「条件を選択してジャンプ」機能を使い、空白セルを一括選択して行削除が可能です。一方、Googleスプレッドシート(スプシ)では、フィルター機能やQUERY関数を活用した削除方法が主流です。
また、Googleスプレッドシートではブラウザベースの特性を活かし、複数人での同時編集時も空白行削除の操作が反映されます。
フィルタ機能を使った空白行の削除方法は?
フィルタ機能を使用すれば、プログラミング知識なしで簡単に空白行を特定し、一括削除できます。 具体的な操作手順を詳しく解説します。
STEP1:データ範囲の選択とフィルタの適用
まず、空白行を含むデータ全体を選択します。列見出しがある場合は、それも含めて選択します。Googleスプレッドシートでは、「データ」→「フィルタを作成」をクリックし、各列の見出しにフィルターアイコンが表示されることを確認します。エクセルでも同様に、「データ」タブから「フィルター」を選択します。
STEP2:空白行の特定とフィルタリング
主要な列(例:ID列や名前列)のフィルターアイコンをクリックし、フィルター条件を設定します。Googleスプレッドシートでは、「条件でフィルタ」→「空白」を選択します。これにより、選択した列で空白のセルを含む行のみが表示されます。複数の列で同時に空白をチェックしたい場合は、各列で順番にフィルター設定を行います。
STEP3:フィルタされた空白行の一括削除
空白行のみが表示された状態で、行番号をクリックして選択します。複数行を選択する場合は、Shiftキーを押しながら範囲選択、またはCtrlキー(Macは⌘キー)を押しながら個別選択します。右クリックして「行を削除」を選択すると、選択した空白行が削除されます。削除後は必ずフィルターを解除し、データ全体を確認します。
フィルタ削除の注意点
フィルターで削除する際には、削除前に必ずバックアップを取りましょう。また、フィルターが正しく適用されているか、プレビューで確認することも大切です。部分的に空白のある行を誤って削除しないよう、複数の列で条件を組み合わせて慎重に判定します。大量のデータを扱う場合は、段階的に削除を行い、都度確認することを推奨します。
関数を使って空白行を除外・削除する方法は?
関数を使用することで、元データを保持しながら空白行を除外した新しいデータセットを作成でき、より安全なデータ処理が可能です。 実践的な関数の活用方法を紹介します。
FILTER関数による空白行の除外
FILTER関数は、条件に合致するデータのみを抽出する強力な機能です。空白行を除外する基本的な構文は以下の通りです。
=FILTER(A:D, A:A<>””)
この関数は、A列が空白でない行のみを抽出します。複数条件での除外も可能です。
=FILTER(A:D, (A:A<>””)*(B:B<>””))
この例では、A列とB列の両方に値がある行のみを抽出します。
QUERY関数を使った高度な空白行処理
GoogleスプレッドシートのQUERY関数を使えば、SQLライクな記述で柔軟な空白行除外が可能です。
=QUERY(A:D, “SELECT * WHERE A IS NOT NULL AND B IS NOT NULL”, 1)
特定の列のみをチェックする場合や、部分的な空白を許容する場合の処理も簡単です。
=QUERY(A:D, “SELECT * WHERE A IS NOT NULL OR B IS NOT NULL OR C IS NOT NULL”, 1)
この例では、いずれかの列に値があれば、その行を抽出します。
ARRAYFORMULA関数と組み合わせた動的処理
ARRAYFORMULA関数を使用して、空白行を動的にマークし、後で削除する準備をすることもできます。
=ARRAYFORMULA(IF(LEN(A:A&B:B&C:C&D:D)=0, “削除対象”, “保持”))
この数式をE列に入力すると、全ての列が空白の行に「削除対象」というマークが付きます。後でこのマークを基準にフィルタリングや削除が可能です。
UNIQUE関数での重複空白行の処理
空白行が連続している場合、UNIQUE関数で重複を除去できます。
=UNIQUE(FILTER(A:D, LEN(A:A&B:B&C:C&D:D)>0))
この関数は、空白行を除外した後、重複行も同時に削除します。データのクリーニングと重複除去を一度に行える効率的な方法です。
Google Apps Script(GAS)で空白行を自動削除する方法は?
GASを使用すれば、大量の空白行を高速で削除でき、定期的な自動実行も設定可能です。 実用的なスクリプトと活用方法を解説します。
基本的な空白行削除スクリプト
完全に空白の行を削除する基本的なGASスクリプトは以下の通りです。
javascript
function deleteEmptyRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var rowsToDelete = [];
// 空白行を特定
for (var i = data.length – 1; i >= 0; i–) {
var row = data[i];
var isEmpty = true;
for (var j = 0; j < row.length; j++) {
if (row[j] !== ”) {
isEmpty = false;
break;}}
if (isEmpty) {
rowsToDelete.push(i + 1); // 行番号は1から始まる}}
// 下から順に削除(インデックスがずれないように)
for (var k = 0; k < rowsToDelete.length; k++) {
sheet.deleteRow(rowsToDelete[k] – k);}
SpreadsheetApp.getUi().alert(rowsToDelete.length + ‘ 行の空白行を削除しました。’);}
条件付き空白行削除の実装
特定の列のみをチェックして空白行を削除する、より柔軟なスクリプト:
javascript
function deleteRowsWithEmptyKeyColumns() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var keyColumns = [0, 1]; // A列とB列をチェック
var rowsToDelete = [];
for (var i = data.length – 1; i >= 1; i–) { // ヘッダー行をスキップ
var isKeyEmpty = true;
for (var j = 0; j < keyColumns.length; j++) {
if (data[i][keyColumns[j]] !== ”) {
isKeyEmpty = false;
break;}}
if (isKeyEmpty) {
rowsToDelete.push(i + 1);}}
// バッチ削除で高速化
if (rowsToDelete.length > 0) {
var rangesToDelete = [];
var start = rowsToDelete[0];
var count = 1;
for (var k = 1; k < rowsToDelete.length; k++) {
if (rowsToDelete[k] === rowsToDelete[k-1] – 1) {
count++;
} else {
sheet.deleteRows(start – count + 1, count);
start = rowsToDelete[k];
count = 1;}}
sheet.deleteRows(start – count + 1, count);}}
定期実行とトリガー設定
トリガーから全シートの空白行を削除するための、呼び出し先関数も含めたサンプルコードを掲載します。
function setupDailyCleanup() {
ScriptApp.newTrigger(‘deleteEmptyRowsInAllSheets’)
.timeBased()
.everyDays(1)
.atHour(2) // 午前2時に実行
.create();}
function deleteEmptyRowsInAllSheets() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
sheets.forEach(function(sheet) {
// 設定シートやマスターシートは除外
if (sheet.getName() !== ‘設定’ && sheet.getName() !== ‘マスター’) {
deleteEmptyRowsInSheet(sheet);}});
// 実行ログをメール送信
var message = ‘空白行削除処理が完了しました。n処理日時: ‘ + new Date();
GmailApp.sendEmail(‘[email protected]’, ‘空白行削除完了通知’, message);}
// 指定シートの完全に空白な行を削除する関数
function deleteEmptyRowsInSheet(sheet) {
var data = sheet.getDataRange().getValues();
var rowsToDelete = [];
// 下から上に向かってチェック(インデックスずれ防止)
for (var i = data.length – 1; i >= 0; i–) {
var row = data[i];
var isEmpty = true;
for (var j = 0; j < row.length; j++) {
if (row[j] !== ”) {
isEmpty = false;
break;}}
if (isEmpty) {
rowsToDelete.push(i + 1); // シート上の行番号は1始まり}}
// まとめて削除
rowsToDelete.forEach(function(rowIndex, idx) {
sheet.deleteRow(rowIndex – idx);});}
パフォーマンス最適化のテクニック
大量データでの空白行削除を高速化する工夫:
javascript
function optimizedDeleteEmptyRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var newData = [];
// 空白でない行のみを新しい配列に追加
values.forEach(function(row) {
if (row.some(function(cell) { return cell !== ”; })) {
newData.push(row);}});
// シートをクリアして新しいデータを一括挿入
sheet.clear();
if (newData.length > 0) {
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);}}
スプレッドシートの空白行を効率的に削除
データ分析の精度を高めるため、スプレッドシートの空白行を効率的に削除する方法を解説しました。
- フィルター機能:
プログラミング不要で、主要列で「空白」を特定し、手動で一括削除する方法です(Excel・スプシ共通)。 - 関数(FILTER/QUERY):
元データを保持しつつ、空白行を除外した新しいデータセットを安全に作成できます。 - GAS(Google Apps Script):
大量データを高速処理したり、定期的な自動削除を設定したりするのに最適です。
用途やデータ量に応じて、最適な方法を選び、効率的なデータクリーニングを行いましょう。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートからメール送信するには?手動送信からGAS自動化まで完全解説
Googleスプレッドシートからメール送信を行うことで、データ共有の効率化、定期レポートの自動配信、条件に基づく通知システムの構築など、業務の自動化と効率化を大幅に進めることができます。手動での簡単な送信方法から、Google Apps S…
詳しくみるエクセルで行列を削除・挿入するショートカットまとめ
エクセルを活用する際、行や列の削除・挿入は頻繁に行う作業ですが、マウス操作では手間がかかります。そこで、キーボードショートカットを活用することで、作業効率を大幅に向上させることができます。本記事では、エクセルで行や列を削除・挿入するためのシ…
詳しくみるエクセルのSIGN関数で符号判定を自動化!使い方と活用例まとめ
数値の符号を判定するなら、エクセルのSIGN関数(サイン関数)が便利です。指定した数値が正なら「1」、負なら「-1」、ゼロなら「0」を返すため、売上の増減判定や条件分岐処理が簡単にできます。 この記事では、SIGN関数の基本から応用例までわ…
詳しくみるエクセルでの発注管理表の作り方!初心者でも分かる手順とプロ級テクニック
エクセルを使った受発注管理表の作成から効率的な運用まで、業務効率化を実現する完全マニュアルです。 基本的な項目設定から、VLOOKUP・SUMIF関数を活用した自動計算機能、テンプレート化の手順まで、5つのステップで解説します。 エクセルで…
詳しくみるスプレッドシートでスクリプトを使って業務を自動化するには?基本から関数まで解説
Googleスプレッドシートのスクリプト機能(Google Apps Script、略称GAS)を活用すれば、手作業で行っていた繰り返し処理を自動化し、業務効率を大幅に向上させることができます。 本記事では、スプレッドシートのスクリプトエデ…
詳しくみるスプレッドシートでプルダウンを複数選択する方法と活用例
タスク管理表で担当者を複数選びたい、アンケートで複数の選択肢にチェックを入れたい、そんなときに便利なのがプルダウンの複数選択機能です。実は、Googleスプレッドシートでは2024年のアップデートで、プルダウンから複数の項目を選択できるよう…
詳しくみる



