Excelで空の行を削除する方法: 簡単に
Iron Softwareのチームによって書かれました
Excelでの空白行は、静かに大きな問題を引き起こす小さな煩わしさの一つです。 式を壊し、ピボットテーブルを混乱させ、ソートを不整合にし、一般的にスプレッドシートが未完成に見えます。 複雑なデータセットでは、空白の行がデータ分析を妨げたり、特にMicrosoft Excelではエラーを引き起こしたりします。 同僚から混乱したファイルを引き継いだか、別のシステムからデータをエクスポートしたかにかかわらず、空白行でいっぱいのスプレッドシートを見つめ、何が最も速くクリーンアップする方法か考えたでしょう。
良いニュース:それを行う信頼できる方法がいくつかあり、そのうちの少なくとも一つは30秒未満で完了します。 空白行の存在は、財務分析に大きな影響を与える可能性があり、他の人とのコラボレーションをより困難にします。 *
空白行の紹介
Excelでの空白の行は、ワークフロー全体を混乱させる可能性があります。 ソート、フィルター、または式の実行中に、エクセルの空白の行は計算を誤らせたり、データ分析が不完全になったり、さらには報告書でエラーが発生したりすることがあります。 これらの空白行は、外部リソースからデータをインポートする際、誤って追加の行を挿入したり、複数のシートを1つに結合したりする際によく紛れ込みます。
空白行を特定することは、クリーンで信頼できるデータセットへの第一歩です。 Excelで空白行はすべてのセルが空の行ですが、時には行内の1つの空のセルでもタスクによって問題を引き起こすことがあります。 放置すると、空白行がデータの流れを妨げ、ピボットテーブルやグラフ、フィルターなどの機能の使用を難しくします。 そのため、Excelで空白行を定期的にチェックして削除し、データが整理され、あらゆる分析や報告タスクに備えておくことが重要です。
空白行がどのように現れ、それがもたらす問題を理解することで、Excelの作業が円滑に進み、データが良好な状態を保つために、それを特定して排除する能力が向上します。
データ削除の準備
Excelワークブックから空白行を削除し始める前に、偶然の損失を避けるためにデータを準備することが重要です。 最善の方法は、オリジナルのデータのバックアップを作成し、単にワークブック全体をコピーして、新しい名前で保存することです。 これにより、クリーニング中に何かがうまくいかない場合でも、オリジナルのデータをいつでも復元できます。
次に、完全に空の行のみを特定するためのヘルパーカラムを使用することを検討してください。 データの隣に新しいカラムを挿入し、COUNTA関数を使用して各行の非空白セルの数をカウントします。 例えば、データが列AからFに及ぶ場合、最初のデータ行のヘルパーカラムに=COUNTA(A2:F2)を入力し、下にコピーします。 結果がゼロである行は完全に空です。
これらの空の行を特定したら、ヘルパーカラムをフィルターでゼロのカウントを持つ行のみを表示します。 これにより、部分的なデータを含む行に影響を及ぼすことなく、真に空の行のみを選択して削除することが容易になります。 バックアップとヘルパーカラムを使用してデータを準備することで、Excelワークブックの整合性を保ちつつ、空白行を削除する効率的で安全なプロセスを保証します。
最速の方法: 特殊を選択 + 削除
今すぐ空行をなくす必要があるなら、これがあなたの動きです。 これは2010年以降のすべてのバージョンのExcelで動作し、一度に数十または数百の空白行を処理します。
それを実行する方法はこちらです:
-
データ範囲の左上隅(データの最初のセル)をクリックしてデータセット全体を選択し、その後Ctrl + Shift + Endを押して選択を最後に使用されたセルまで拡張します。
-
Ctrl + Gを押して_Go To_ダイアログボックスを開きます。 その後、特殊をクリックします。
-
_Go To Special_ダイアログで、空白を選んでOKをクリックします。 Excelは選択内のすべての空白セルをハイライトします。
- ハイライトされたセルを右クリックし、削除を選択します。
- _削除_ダイアログで、行全体を選択してOKをクリックします。
また、空白行を選択した後、ホームタブに移動し、編集グループを見つけ、"シート行の削除"をクリックして選択した行を削除します。
すべての空行は瞬時に消えます。

ホームタブの編集グループで、"シート行の削除"オプションを見つけることもできます。
重要な警告: この方法は少なくとも1つの空白セルを含む行、部分的に充填された行も削除します。 もしデータに個々のセルで時々値が欠落している場合は、より安全なフィルターメソッドに進んでください。 *
方法2: フィルターを使って空白行を見つけて削除する
フィルターメソッドは、データに意図的に空白になっているセルがいくつかある場合の最も安全なアプローチです。 他のものには触れずに完全に空の行のみをターゲットにすることができます。
フィルターを使って空白行を削除する手順を次のようにフォローしてください:
- データ範囲内の任意のセルをクリックします。
-
リボンのホームタブに移動し、並べ替えとフィルターをクリックし、フィルターを選択します。 (またはCtrl + Shift + Lを押します。)"ヘッダ行にフィルタードロップダウンが表示されます。
- 空白であってはならない列(例:ID列または名前列)のフィルター矢印をクリックします。
- フィルターメニューで、すべて選択のチェックを外し、下までスクロールして空白をチェックします。 OKをクリックします。
フィルターを適用するには、ヘッダー行を選択し、Ctrl + Shift + L を押し、列のフィルター矢印をクリックし、すべて選択のチェックを外し、空白を選択します。
- Excelは、その列が空の行のみを表示します。 左側の行番号をクリックしながらShiftを押して、すべてを選択します。
- 選択した行を右クリックし、行を削除を選択します。
- フィルタをオフにするには、再度Ctrl + Shift + Lを押します。 残ったデータがクリーンで完全な状態で再表示されます。
この方法により、完全な制御が可能になります。 特定の列でフィルタリングしているため、その列にデータが本当に欠けている行だけが削除されます。 他の場所に孤立した欠損値がある行はそのままです。
方法3: データを並べ替えて空白を下に押し出す
時には、データを並べ替えるだけが最も簡単な解決策です。 並べ替えにより、すべての空行がデータセットの下部に押し出され、グループとして選択して削除できます。
ステップ:
- 並べ替えたい列の任意のセルをクリックします。
-
リボンのデータに移動し、AからZまでを並べ替え(またはZからAを並べ替え、どちらでも動作しますが、空白が最後に並べ替えられるため)をクリックします。 より高度な並べ替えオプションを使用するには、並べ替えダイアログボックスを使用できます。
- データセットの下までスクロールします。 すべての空行がそこに集結しています。
- 最初の空行番号をクリックし、Shiftを押し、最後をクリックして、全体を一度に選択します。
- 右クリックして、削除を選択します。
使用範囲を並べ替えることで、データセット外の余分なセルに影響を与えることなく、関連するデータにだけ影響を与えます。 ここでの明らかなトレードオフは、並べ替えることでデータの順序が変更されることです。 たとえば、日付順のログやランク付けされたリストがある場合、フィルタメソッドを使用するか、掃除後に再度並べ替えを行ってください。
方法4: 右クリック削除(少数の行に対して)
少数の空行が小さなスプレッドシートに散らばっている場合、特別なツールは必要ありません。 手動で選択して削除するだけです。
ステップ:
- 画面左側の最初の空行の行番号をクリックします。 行全体が青色に変わります。
-
たくさんの行を選択するには、Ctrlを押しながら削除したい他の空行番号をクリックします。 この"複数行選択"メソッドにより、非連続の行を選択できます。
- 強調表示された行番号のいずれかを右クリックします。
- コンテキストメニューから削除を選択します。
これはすべてのメソッドの中で最も手動ですが、小さなクイッククリーニングには十分です。 誤って間違った行を削除するリスクは低く、確認する前に選択した内容を正確に見ることができるためです。
方法5: 空白を見つけるための検索と置換
Excelの検索と置換ツールは通常、行削除ツールとして考えられていませんが、スクロールするのに時間がかかる大規模なスプレッドシートで空白行を見つけて選択するのに役立ちます。
ステップ:
-
検索と置換を開くためにCtrl + Hを押し、検索タブをクリックします。
- _検索する内容_フィールドを完全に空白にします。
- _検索範囲_の下で、値を選択します。
- すべて検索をクリックします。 Excelは、シート内のすべての空白セルをダイアログの下部に一覧表示します。
-
結果リストでCtrl + Aを押して、すべての空白セルを一度に選択します。 ダイアログを閉じます。
- 空白セルを選択した状態で、ホームタブに移動し、編集グループを見つけ、シート行の削除をクリックします。
この方法は、Go To Specialアプローチと同じ注意点を共有します:少なくとも1つの空白がある行をターゲットにします。 部分的な空白が予想されるデータで使用する際は注意が必要です。 *
方法6: COUNTAを使用したヘルパー列
データが複雑で、何かを削除する前にどの行が空であるかを正確に確認したい場合、ヘルパー列が視覚的安全ネットを提供します。 この方法は、分析や計算を妨げる空白行がある複雑なデータセットに特に便利です。
ステップ:
- データの隣の空白列(たとえば、データが列Fまでで終わる場合は列G)に、この式を最初のデータ行に入力します。
=COUNTA(A2:F2)
=COUNTA(A2:F2)
=COUNTA(A2:F2)
この式で、その行に存在する空でないセルの数を数えます。 この式を複数の列(例:A2:F2)に適用して行全体が空かどうかを確認したり、単一の列だけを確認する必要がある場合は、1列だけを確認することができます。 各行の最初のセルに基づいて確認したい場合は、そのセルだけを参照することができます(例:=COUNTA(A2))。 結果が全行が空であることを意味します。
- データセットの最後の行まで公式をコピーします。
- ヘルパー列をフィルタして、値が0の行だけを表示します。
- 上記の右クリック方法を使用して、フィルタされた行を削除します。
- 完了したらヘルパー列を削除します。

これはリストの中で最も正確な方法です。_すべて_のセルが空である行だけを削除し、そのまま部分的な行は手つかずで残ります。 いくつかの追加ステップが必要ですが、データがどのように散らばっているか完全にはわからない場合、特に複雑なデータセットを使用する際や複数の列または1列だけにわたって精度を確保する必要がある場合に価値があります。
方法7: VBAマクロを使用して空白行を削除する
大規模なファイルを定期的に扱い、空白行のクリーニングが繰り返し行われる場合、単純なマクロでプロセス全体を自動化できます。 このマクロは、一度に複数の空白行を削除するのに特に便利です。 プログラマーである必要はなく、手順に従うだけで使用できます。
ステップ:
-
Alt + F11を押して、Visual Basicエディターを開きます。
-
挿入 → モジュールに移動して、新しいモジュールを追加します。
- 次のコードをモジュールに貼り付けます。
Sub DeleteBlankRows()
' Declare a range variable to use for processing rows
Dim rng As Range
Dim i As Long
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(ActiveSheet.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete
End If
Next i
End Sub
Sub DeleteBlankRows()
' Declare a range variable to use for processing rows
Dim rng As Range
Dim i As Long
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(ActiveSheet.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete
End If
Next i
End Sub
Option Strict On
Sub DeleteBlankRows()
' Declare a range variable to use for processing rows
Dim rng As Range
Dim i As Long
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(ActiveSheet.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete()
End If
Next i
End Sub
-
F5を押すか、実行をクリックして、マクロを実行します。
- VBAエディターを閉じます。
このマクロは、全行が空である行を削除するために毎行を下から上まで(上から削除すると行番号がシフトし、行がスキップされるため)ループします。 空の行を完全に削除するために安全かつ高速で再利用可能です。 マクロを変更して異なる基準に基づいて行を削除したり、FILTER()のような式を使用して、行を物理的に削除せずにデータのクリーニングされたビューを作成することができます。
マクロを将来使用するために保存しておくには、ファイルをExcelマクロ対応ワークブック(.XLSM形式)として保存します。 *
Power Queryを使用して空の行を削除する
Power QueryはExcelに組み込まれた強力なツールで、大規模データセットや定期的なデータインポートを扱う際に空白行を簡単に削除できます。 開始するには、データタブに移動し、表/範囲からを選択して、Power Queryエディターにデータをロードします。 Power Query内に入ったら、行の削除ドロップダウンをクリックし、空白行の削除を選択するだけです。 Power Queryはデータ範囲からすべての空行を即座に削除します。
Power Queryを使用する最大の利点の1つは、各変換ステップを記録することです。つまり、新しい情報をインポートするたびに、または既存のテーブルを更新するたびに、Power Queryは自動的に空行を削除します。 この方法は、定期的に大規模なデータセットを扱う人やExcelで空行をクリーニングするプロセスを自動化したい人に最適です。
Power Queryを活用することで、データのクリーニングを効率化し、時間を節約し、データがどのように変わっても、常に分析の準備を整えることができます。 *
Excelテーブルの空行
Excelテーブルの空行は、不正確なデータ並べ替えからフィルタの破損や不完全な分析まで、問題を引き起こす可能性があります。 Excelテーブルに空行がある場合、データの流れを妨げ、構造化参照やテーブルの式と連携するのが難しくなります。
テーブルから空行を削除するには、まずテーブル全体を選択します。 ホームタブに移動し、検索 & 選択をクリックし、特別な移動先を選択します。 空白を選択して、テーブル内のすべての空セルを強調表示します。 次に、強調表示されたセルのいずれかを右クリックし、コンテキストメニューから削除を選択します。 ダイアログボックスで、行全体を選択して、空白のみの行をすべて削除します。
または、COUNTA関数を使用して、各行の非空白セルの数を数えるヘルパー列を追加することもできます。 ヘルパー列をフィルタして、カウントが0の行のみを表示します。これが完全に空の行です。 これらの行を選択して削除し、テーブルをきれいに保ちます。
定期的にExcelテーブルから空行を削除することで、データの並べ替え、フィルタリング、分析が正確で効率的に保たれることを保証します。 クリーンなテーブルはエラーが少なく、ワークフローがスムーズになり、データから必要なインサイトを取得しやすくなります。
よくある問題とトラブルシューティング
"削除された行、しかしExcelにはまだ下部に空白が表示される。"
これは通常、その行が本当に空ではないことを意味します。スペース文字、改行、または見えないフォーマットが含まれています。 疑わしい行を選択して、キーボードの削除を押す(行自体を削除する右クリック削除ではなく)、その後、再度Go To Specialメソッドを試してください。 単一のスペースを検索して、何もないものに置き換えるために、検索と置換を使用することもできます。
"データには意図的に空白のセルがあります。完全に空の行のみを削除します。"
COUNTAヘルパーコラム方法(方法6)またはフィルタ方法(方法2)を使用し、IDやプライマリキー列など、決して空でないはずの列でフィルタします。 どちらの方法も部分的な行を残します。
"フィルタリングと削除後に、他のデータが消えた。"
これは、フィルターがアクティブな状態で表示された行を誤って削除したが、他の行が非表示になっている場合に発生する可能性があります。 削除する前にフィルタ設定を必ず再確認してください。 良い習慣として、フィルタをオフにしてオンにして、どの行が実際に表示されているかを確認します。
"Go To Special方法が不要なセルを選択した。"
Go To Special → 空白方法は、範囲内のすべての空白セルを選択し、空白行だけでなくすべてを含みます。 データに意図的な空白セル(例えばメモ欄がよく空である場合)が含まれる場合、この方法はその行もフラグ付けされます。 よりコントロールを持たせるために、方法2または方法6に切り替えます。
"スプレッドシートが巨大です。手動の方法は遅すぎます。"
何千もの行があるファイルの場合、フィルタメソッド(方法2)またはVBAマクロ(方法7)が最良のオプションです。 どちらも遅くならずに大きなデータセットを処理します。 手動の右クリック方法は数十行以上の削除には適していません。
""この操作は結合セルでは機能しません"エラーが表示される。"
結合セルは行削除を阻害します。 ホーム → 検索 & 選択 → 特別な移動先 → 最後のセルに移動し、結合セルが空行に含まれるかどうかを確認します。 削除が成功する前に、まずセルを結合解除する必要があるかもしれません(ホーム → 結合 & センター → 結合解除)。 *
ボーナス: 空の行が戻ってこないようにする
スプレッドシートをクリーンに保つために、いくつかの習慣を守りましょう。
- 構造化テーブルを使用する。 データをExcelテーブルに変換すると(Ctrl + Tを押して)、Excelは常に空白のない連続したデータを自動的に保つことができます。
- データを入力時に検証する。 キーとなる列に入力を必要とするデータ検証を使用し、最初に空白の行が現れるのを難しくします。
- インポート前にデータをクリーニングする。 CSVエクスポートや外部ツールから定期的にインポートする場合は、データを操作する前の最初のステップとしてクイックフィルターチェックを実施します。
-
- *
開発者向け: IronXLで空の行をプログラム的に削除する方法
開発環境で作業し、複数のファイルにわたってExcelクリーニングを自動化する必要がある場合や、それをアプリケーションに組み込む必要がある場合、手作業は現実的ではありません。 IronXLは、C#でExcelファイルを直接処理する.NETライブラリで、サーバーにMicrosoft Officeをインストールする必要はありません。
こちらは、ワークシートから空の行を削除する簡単な例です。
using IronXL;
WorkBook workbook = WorkBook.Load("report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Iterate rows in reverse to safely delete without index shifting
for (int i = sheet.RowCount; i >= 1; i--)
{
var row = sheet.GetRow(i);
bool isEmpty = true;
foreach (var cell in row)
{
if (!string.IsNullOrWhiteSpace(cell.StringValue))
{
isEmpty = false;
break;
}
}
if (isEmpty)
{
sheet.RemoveRow(i);
}
}
workbook.SaveAs("report_cleaned.xlsx");
using IronXL;
WorkBook workbook = WorkBook.Load("report.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Iterate rows in reverse to safely delete without index shifting
for (int i = sheet.RowCount; i >= 1; i--)
{
var row = sheet.GetRow(i);
bool isEmpty = true;
foreach (var cell in row)
{
if (!string.IsNullOrWhiteSpace(cell.StringValue))
{
isEmpty = false;
break;
}
}
if (isEmpty)
{
sheet.RemoveRow(i);
}
}
workbook.SaveAs("report_cleaned.xlsx");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("report.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Iterate rows in reverse to safely delete without index shifting
For i As Integer = sheet.RowCount To 1 Step -1
Dim row = sheet.GetRow(i)
Dim isEmpty As Boolean = True
For Each cell In row
If Not String.IsNullOrWhiteSpace(cell.StringValue) Then
isEmpty = False
Exit For
End If
Next
If isEmpty Then
sheet.RemoveRow(i)
End If
Next
workbook.SaveAs("report_cleaned.xlsx")
このアプローチは、Webアプリでアップロードされたファイルを処理する場合や、バッチETLパイプラインでデータをクリーニングする場合、またはユーザーがExcelに触れることがない内部ツールを構築する場合に役立ちます。
IronXLは、Office依存なしで.NET 6、.NET 7、.NET 8および.NET Framework全体でExcelファイルの読み取り、書き込み、フォーマットをサポートしています。
まとめ: どの方法を使用すべきですか?
|状況|最適な方法| |---|---| |シンプルなデータに対する迅速な一時的なクリーニング|Go To Special(方法1)| |データには意図的な空白のセルがある|必須の列でフィルタリングする(方法2)| |行の順序は関係ない|下に並べ替える(方法3)| |削除する空行がわずかしかない|手動の右クリック(方法4)| |削除する前に確認が必要|COUNTAヘルパーコラム(方法6)| |繰り返し行うクリーニングタスク|VBAマクロ(方法7)| |自動化されたプログラム処理| IronXL (.NET) |
空行は無視されるのが簡単ですが、VLOOKUPの破損やチャートのずれ、ピボットテーブルが正しく更新されないといった本当の問題を引き起こすまではそうです。 どんな新しいスプレッドシートでも作業を開始する前に簡単なクリーニングを行う習慣を作るのは価値があります。 上記のいずれの方法も仕事をやり遂げますが、 適切な方法は、データの散らかり具合とどれだけのコントロールが必要かに依存します。




