
Excelで、空白行を削除して、データを詰める方法をご紹介します。この記事では、ジャンプ機能で元データから空白行を消す方法や、関数を使って自動でデータを詰める方法を解説しているので、ぜひ参考にしてみてください。
FILTER関数で空白行を詰める

FILTER関数を使うと、指定した範囲を、特定の条件と一致する行にフィルタ処理してくれます。
例:=FILTER(A2:A5,A2:A5<>"")
この数式は、「A2:A5の範囲のうち、空白ではない(<>"")セルだけを抽出する」という意味になります。
FILTER関数の引数:(範囲, 条件, [空の場合])
INDEX関数で空白行を詰める

FILTER関数が使えない場合、次のように、作業列を使って空白行を詰めることができます。
- 作業列で値がある行の番号を取得
- 例:
=IF(B2="","",ROW())
- 例:
- INDEX関数で空白行を詰める
- 例:
=IFERROR(INDEX(B:B,SMALL($A$2:$A$5,ROW(A1))),"")
- 例:
数式の解説
作業列で値がある行の番号を取得

まず、作業列に以下の数式を入力し、データのある行までオートフィルでコピーします。
例:=IF(B2="","",ROW())
この数式は、IF関数を使って、「値がある行」にだけ、ROW関数で行番号を返すようにしています。
IF関数の引数:(論理式, 真の場合, 偽の場合)
INDEX関数で空白行を詰める

次に、以下の数式を入力し、データのある行までオートフィルでコピーします。
例: =IFERROR(INDEX(B:B,SMALL($A$2:$A$5,ROW(A1))),"")
この数式は、SMALL関数で作業列の行番号を小さい順に抜き出し、INDEX関数で、その行番号にある元のデータを抽出することで、空白行を詰めています。
ポイント
関数の第2引数(順位)にROW(A1)を指定することで、数式を下にコピーするたびに、1位、2位、3位と順位を変えながら、値を取り出せるようになります。
INDEX関数の引数:(参照, 行番号, [列番号])
ジャンプ機能で空白行を削除する

ジャンプ機能を使うと、空白セルを一度に選択し、元データから空白行をまとめて削除できます。
手順
- データ範囲を選択し、ジャンプ機能を開く
- データが入っている範囲全体を選択します。
- 「ホーム」タブの「検索と選択」から、「条件を選択してジャンプ」をクリックします。
- 空白セルを選択する
- 「選択オプション」ウィンドウが表示されるので、「空白セル」にチェックを入れて「OK」をクリックします。
- これにより、選択範囲内にあるすべての空白セルが一度に選択されます。
- 空白行を削除する
- 選択された空白セル上で右クリックし、「削除」を開きます。
- 選択範囲のみ行を詰める場合は「上方向にシフト」を、行全体を削除する場合は「行全体」を選択します。