空白の行を削除して上に詰めるには? フィルター、ジャンプ、VBAを使用 | EXCELトピックス

スポンサーリンク
スポンサーリンク
amazon
スマイルSALE
--:--:--
ad. 価格範囲を指定して商品を探せます

空白の行を削除して上に詰めるには?

Excelでデータの中に空白の行があると、集計や並べ替え、分析が正しく行えなくなる原因になります。このような場合、空白行を削除してデータを上に詰めると、綺麗に整理できます。この記事では、Excelで空白行を効率的に処理する4つの方法について解説します。

方法1: FILTER関数を使って別場所に空白を詰めて抽出する【最新・おすすめ】

現在のExcel(Office 365やExcel 2021以降)であれば、関数を使って元のデータを汚さずに、空白を除いたデータだけを別の場所に一瞬で取り出すことができます。

手順

  1. 抽出結果を表示させたいセル(例:D2)を選択します。
  2. 次の数式を入力します:=FILTER(A2:B6, A2:A6<>"")
  3. Enterキーを押すと、A列が空白ではない行だけが自動的に上に詰まってスピル(展開)されます。

※元のデータを残したまま、安全かつ一瞬で綺麗な表を作りたい場合に最もおすすめの方法です。

方法2: フィルターを使って空白行を削除する

従来の機能を使って、元のデータから空白行を直接削除して上に詰める方法です。

手順

  1. タイトル行を含むデータ範囲全体(例:A1:B5)を選択します。
  2. 「データ」タブから「フィルター」をクリックし、フィルター機能を有効にします。
  3. A列のフィルタボタン(▼マーク)をクリックし、一番下にある「(空白)」にだけチェックを入れた状態にして「OK」をクリックします。
  4. 画面上に表示された空白行(青い行番号の行)をすべて選択し、右クリックして「行の削除」を選択します。
  5. 「データ」タブの「クリア」をクリックするか、フィルターをオフにすると、データが上に詰まっていることを確認できます。

方法3: [ジャンプ]機能を使って空白セルを一括削除する(注意点あり)

「ジャンプ」機能(セル選択オプション)を使用して空白セルを素早く見つけ、上に詰める方法です。

手順

  1. 空白を詰めたいデータ範囲(例:A2:B5)を正確に選択します。
  2. 「ホーム」タブから「検索と選択」→「ジャンプ」をクリックします(ショートカットキー:Ctrl+G)。
  3. 左下の「セル選択」ボタンを押し、オプション画面で「空白セル」を選んで「OK」をクリックします。
  4. 選択された空白セルの上で右クリックし、「削除」を選択します。
  5. ダイアログボックスが表示されたら、「上方向にシフト」(または完全にデータがない行であれば「行全体」)を選択して「OK」をクリックします。

※注意:データの一部だけが空白になっている行で「行全体」を選ぶと、他の列にある必要なデータまで一緒に削除されてしまうため、選択範囲には十分注意してください。

方法4: VBAマクロを使用して空白行を一括削除する

データ量が非常に多く、何度も空白行の削除作業が発生する場合には、VBAマクロを使用することで自動化できます。

VBAコードの手順

  1. 「開発」タブから「Visual Basic」をクリックして、VBAエディタを開きます。
  2. 「挿入」→「標準モジュール」を選択し、次のコードを入力します。

VBAコード:

Sub DeleteEmptyRows()
    Dim LastRow As Long
    Dim i As Long
    
    ' 1列目(A列)を基準に最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 行の削除を行うため、下から上に向かってループ処理
    For i = LastRow To 1 Step -1
        ' その行に全くデータが含まれていない(完全な空白行)の場合に削除
        If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
            Rows(i).Delete
        End If
    Next i
End Sub

VBAコードの説明

  • LastRow: データが入力されている最後の行の番号を自動取得します。
  • For i = LastRow To 1 Step -1: 行を削除すると行番号がずれるため、下から上に向かって1行ずつチェックしていくのがVBAの鉄則です。
  • CountA(Rows(i)) = 0: 対象の行に文字や数値が1つも入っていない(COUNTA関数の結果が0)場合、その行全体を削除します。

データのイメージ例

以下の表のように、途中に空白行(2行目や4行目)が含まれているケースを想定しています。

A B
1 データ1 値1
2
3 データ2 値2
4
5 データ3 値3

処理後の結果

A B
1 データ1 値1
2 データ2 値2
3 データ3 値3

※空白の行がきれいに削除され、データが上に詰められて連続した表になります。

まとめ

Excelで空白行を削除してデータを上に詰めるには、元データを残せる「FILTER関数」、手軽に一括処理できる「フィルター」や「ジャンプ機能」、大量データ向けの「VBAマクロ」といったアプローチがあります。用途やデータの構造に合わせて最適な方法を選択してください。

画像で空白の行を削除して上に詰める方法について総まとめ

開発タブが表示されていないとき

開発タブを表示させるには? VBAやマクロの設定のために | EXCELトピックス
開発タブが表示されず、VBAやマクロの設定ができない場合の対処法ExcelでVBAやマクロを使用するためには、「開発」タブが必要ですが、初期設定では表示されていません。「開発」タブを表示する設定方法を以下にご紹介します。開発タブを表示させる方法「開発」タブは、Excelのオプション設定で表示することができます。以下の手...