• 公開日:
  • 更新日:

Excelで空白行を詰める関数

Excelでデータを入力する際、データとデータの間に不要な空白行が増えることがあります。この「空白行」を簡単に削除したいと思ったことはありませんか?

本記事では、複数の関数を使って空白行を削除する方法を説明します。

複数の関数を使用するため、計算式はやや複雑ですが、覚えておくと便利です。

空白行の削除で使用する関数

空白行の削除で使用する関数については、以下のとおりです。

IFERROR関数

行を削除した結果を反映させるため、余分にオートフィルすると、エラー値が表示されてしまいます。

後述の「関数を使って空白行を詰める」セクションでは、エラー値の表示は必要ないのでIFERROR関数を使います。

IFERROR関数の詳細については、以下の記事を参照してください。

ExcelのIFERROR関数の使い方|エラーの場合に指定した値を返す

INDEX関数

INDEX関数は、行番号などを指定して値を返す関数です。

後述の「関数を使って空白行を詰める」セクションでは、選択した列(例:A列)のデータを別の列のセル(例:E列以降)に値として反映させるために使用します。

INDEX関数の詳細については、以下の記事を参照してください。

ExcelのINDEX関数の使い方|行と列が交差する位置にあるセルを返す

SMALL関数

SMALL関数とは、少ない数からの順位を指定してデータをもとめる関数です。

後述の「関数を使って空白行を詰める」セクションでは、SMALL関数を使って空白でないセルの行番号を小さい順に取得しています。

IF関数

IF関数は論理式の結果(真また偽)に応じて、指定された値を返す関数です。

後述の「関数を使って空白行を詰める」セクションでは、IF関数により、指定した列(例:A列)に空白以外のセルには真(TRUE)を、空白のセルには偽(FALSE)を返す数式を作成しています。

IF関数の詳細については、以下の記事を参照して下さい。

ExcelのIF関数の使い方|論理式の条件(IF文)によって処理を分岐

ROW関数

ROW関数とは、指定したセル参照の行番号を返す関数です。

後述の「関数を使って空白行を詰める」セクションでは、ROW関数が指定した列(例:A列)から空白行でない行番号を抽出するのに役立っています。

ROW関数の詳細については、以下の記事を参照してください。

ExcelのROW関数の使い方|セルの行番号を求める

手順で使用するフォーマットのダウンロードはこちら

関数を使って空白行を詰める

関数を使って空白行を詰める方法については、以下のとおりです。ここでは、IFERROR関数、INDEX関数、SMALL関数、IF関数、ROW関数を組み合わせて使います。

セルを選択する

関数の結果を反映させたい任意のセル(例:E1)を選択します。

関数を入力する

空白行を埋めるには、INDEX、SMALL、IF、ROWの4つの関数を組み合わせて使用します。ここでは、オートフィル時にエラー値を表示させないためのIFERROR関数も追加しています。数式バーに=IFERROR(INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A)),ROW())),"")を入力します。

縦にオートフィルを行う

Ctrl + Enterを押します。E1セルの右下隅にカーソルを合わせ、A列のデータの最後(例:いちじく)が見えるまで下方向にドラッグしてオートフィルを行います。

横にオートフィルを行う

E5セルの右下隅にカーソルを置き、2列だけ右にドラッグしてオートフィルします。

空白行が無くなる

行を削除したデータは、E列~G列に反映されるようになりました。