鷹尾祥(アキラ)のExcel BI ブログ

Excelの革新的機能であるパワーピボット/パワークエリ/DAXについて紹介します。

フィル:空白データを埋める(セルの結合対策)

f:id:modernexcel7:20190711232735p:plain

「フィル」とは?

f:id:modernexcel7:20190707201912p:plain

今回のテーマはフィルです。フィルとは、部分的にデータが存在する場合、それを縦方向(上または下)に埋める機能です。EXCELでも存在するのですが、アイコンが目立たないせいか、あまり知られていません。

主に空白セルのある表をデータ・テーブルに変換するときに使用します。特に元のEXCELファイルでセルの結合がされている場合に、効果を発揮します。

また、クロス集計表をデータ化するときにも使用します。

以下のBeforeの例1~3をAfterの形に整形します。

Before

例1:縦(空白セル)
大分類・中分類に空白セルがあるパターンです。
f:id:modernexcel7:20190707191409p:plain

例2:縦(セルの結合)
大分類・中分類が「セルの結合」によって合体しているパターンです。
f:id:modernexcel7:20190707191426p:plain

例3:横(セルの結合)
大分類・中分類が横に展開され、セルが結合されているパターンです。
f:id:modernexcel7:20190707191445p:plain

After

大分類・中分類が埋められます。
f:id:modernexcel7:20190707191459p:plain

実践

例1:縦(空白セル)


まずは基本のパターンです。以下のサンプルデータを使用します。
f:id:modernexcel7:20190707191409p:plain

データのある範囲のセルにカーソルを置きます。範囲全体を選ばなくても大丈夫です。
f:id:modernexcel7:20190707193437p:plain

「データ」タブ→データの取得と変換→テーブルまたは範囲から を選びます。
f:id:modernexcel7:20190707193207p:plain

自動的に範囲が選択されるので、そのままOKを押します。
「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認してください。
f:id:modernexcel7:20190707193535p:plain

Power Query Editorが開きます。
この段階では、空白セルがそのままブランク(null)として読み込まれています。
1行目の「脊椎動物」のあと13行目まで空白セルが続き、14行目に「無脊椎動物」がきた後再び空白セルが続いていることに注目してください。
f:id:modernexcel7:20190707193820p:plain

「大分類」列を選択→「変換」タブ→フィル→下 を選択します。
f:id:modernexcel7:20190707194113p:plain

「大分類」列で、値の入っているセルが下の空白セルにコピーされます。
2行目から13行目までが「脊椎動物」、15行目以降が「無脊椎動物」になっていることに注意してください。
f:id:modernexcel7:20190707194230p:plain

同様の手順で「中分類」列も選択し、「変換」タブ→フィル→下 を選択します。
なお、二つの列を同時氏に選択して、フィルを行うことも可能です。
f:id:modernexcel7:20190707195018p:plain

これで変換は終わりなので、「ホーム」タブの「閉じて読み込む」を実行します。
f:id:modernexcel7:20190707195148p:plain

無事、空白セルを埋めることができました。
f:id:modernexcel7:20190707195212p:plain

例2:縦(セルの結合)

次は、大分類・中分類が「セルの結合」によって合体しているパターンです。
f:id:modernexcel7:20190707191426p:plain

実は、例1全く同じ手順です。
例1と同じように、表のどこかにカーソルを置き、「データ」タブ→データの取得と変換→テーブルまたは範囲から をクリックして、次の画面で「OK」を押してPower Query Editorを開いてください。
今回も「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認してください。
f:id:modernexcel7:20190707195633p:plain

ここまでくると、例1と同じ画面になります。
実は「セルの結合」が行われたセルをPower Queryで読み込むと、一番上の行にデータが残り、それ以下の行は次に値が入ったセルが来るまで空白セルになります。
f:id:modernexcel7:20190707195841p:plain

あとは、例1と同じ手順でフィルを行い、読み込みます。
f:id:modernexcel7:20190707195941p:plain

例3:横(セルの結合)

今度は大分類・中分類が横に展開され、セルが結合されているパターンです。
セルが結合されている部分は前回と同じですが、今回は横にデータが並んでいることが問題です。
f:id:modernexcel7:20190707191445p:plain

いつものように表のどこかにカーソルを置き、「データ」タブ→データの取得と変換→テーブルまたは範囲から をクリックして、次の画面で「OK」を押してPower Query Editorを開いてください。
ただし、今回は「先頭行をテーブルの見出しとして使用する」にチェックが入っていないことに注意してください。
f:id:modernexcel7:20190707200301p:plain

Power Query Editorが開き、以下のようにデータが読み込まれます。列名が列1、2,3となっています。
f:id:modernexcel7:20190707200610p:plain

以前の例と同じデータですが、横方向に空白セルが並んでいるのが問題です。
フィルでは上方向か下方向にしか選べないので、データそのものの縦横を入れ替えます。
「変換」タブ→入れ替えをクリックします。
f:id:modernexcel7:20190707200937p:plain

すると、縦横が入れ替わりました。ここまでくると先が見えてきます。
f:id:modernexcel7:20190707201117p:plain

「Column1」と「Column2」列を選択→「変換」タブ→フィル→下 を選択して空白セルを埋めます。
f:id:modernexcel7:20190707201354p:plain

最後に「一行目をヘッダーとして使用する」を実行します。
f:id:modernexcel7:20190707201542p:plain
f:id:modernexcel7:20190707201555p:plain

これで「閉じて読み込む」をじ実行します。
f:id:modernexcel7:20190707201648p:plain

なお、フィルを行った後に、再び「入れ替え」を実行すると、横のフォーマットに戻すことができます。
f:id:modernexcel7:20190707201824p:plain