shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】複数行ごと(例外あり)の表を一行に変換

前回は、「3行ごとに1件分のデータ」が入力されている表を1行に変換する方法でした。今回は、繰り返しの行数が変動する場合の方法です。

例えば、下図のように基本的な項目パターンは一致するものの、2行や3行のデータ、空白行があるような表を1行に変換する事例です。

Excelで作成された表のデータベース化などを進めようとすると、時折このような表の処理が必要になることがあるので、対応の一例です。

基本的な項目パターンは一致で、2行や3行のデータ、空白行があるような表

繰り返し行数が変動する場合の複数行を1行に変換イメージ

内容:

事例の前提

複数行ごとの表を一行に変換の基本は次のとおり。

shikumika.org

今回は、基本的な項目パターンは一致するものの、2行や3行のデータ、空白行があるような例外があります。

A列およびC列は、1件のレコードにつき1つのデータがあるという前提です。

上記の基本対応を踏まえて、例外の処理部分だけ以下で補足します。

対応方法

このケースでは、A列もしくはC列の値を使用して例外に対応可能です。

IF文で、A列もしくはC列が空欄の場合に値を取得するようにします。

下図は、A列が空欄でない場合は、次のレコードと判定し、空欄を表示する事例です。

IF文で、データ開始行であるかを空欄のセルを判定に利用している

IF文を組み合わせて1行分のアウトプット作成

この事例では、

セルH2の数式 =IF(A3="",B3,"")

セルI2の数式 =IF(A4="",B4,"")

など入力しています。どのような判定数式にするかは、実際のデータによって修正は必要です。

以降の手順は、【Excel】複数行ごとの表を一行に変換(リストのような単票の変換)と同様に、数式をコピー、抽出します。

参考情報

今回の事例では「残したい行を識別できる列」について、空欄を判定に利用しました。

データの状態によっては、文字列を検索して判定する方法など、他の方法が必要となることがあります。

以下はMATCH関数で文字列を検索して判定する事例です。

shikumika.org

以上、Excelで複数行ごと(例外あり)の表を一行に変換する方法でした。