【Power BI】Power Query を使ってみよう!②

BI技術者の雑記

コラムでは、Excelと相性の良いBIツールであるPower BIについて、3回にわたってご紹介します。

前回の「【Power BI】Power Query を使ってみよう!①」ではPower BIの基本的な情報とデータ分析の現場における”とある傾向”をご紹介しましたが、2回目となる今回は、ExcelデータをPower BIでビジュアライゼーションするために必要なPower Queryの操作手順についてご説明します。

1.手順① ファイルを読み込ませる

Power BIを起動し、Excelファイルを読み込みます。 

be07_03.png

こんな目立つ場所にExcelのアイコンがあります。
(Power BIのバージョンによります)

be07_04.png

このあと、Power Queryエディターが起動します。
ここで「読み込み」を押下すると、Power Queryエディターの起動はスキップされ、Power BIが起動します。
Power BIとPower Queryの切り替えはいつでも行えるので、あまり慎重にならなくても大丈夫です。

be07_05.png

Power Queryエディターが起動しました。Excelファイルが読み込まれています。
右端までスクロールしてみましょう。

画像を見て、気づかれた点がいくつかあると思います。

  • 読み込んだExcelファイルの1行目がヘッダー(列のタイトル)として扱われている。
  • セルの結合が解除されている。
  • もともと空白だったセルと、結合が解除されたセルの一番上の行以外にnullと表示されている。
  • 右上にあった「社外秘」のテキストボックスが消えている。

実際に動かしてみると、「こういう動きをするのだな」と実体験として腹落ちしますね。
テキストボックス(オブジェクト)が勝手に消えてくれているのは好都合です。

ちなみに、nullとは「何もない」という意味です。
数値の0とも違うものなので、お気を付けください。
NULL撲滅委員会:http://mickindex.sakura.ne.jp/database/db_getout_null.htmlより)

2.手順② 再現性を有するということ

それではデータ整形していきましょう。
まず、明らかに不要な1行目(ヘッダー行のことではありませんので、注意してください)を削除します。

be07_06.png

[ホーム]タブの「行の削除」から「上位の行の削除」を選択します。
「上位の行の削除」というポップアップが表示されるので、ここでは「1」と指定します。
「3行消したい」と思った場合は「3」と入力します。

be07_07.png

1行目が消え、先ほどまで2行目だった行が新たな1行目として繰り上がりました。
そしてもう一つ変化が…。
赤枠で囲った部分に、「削除された最初の行」という文言が追加されています。

作業を進めます。次は一番左の列も削除することにしましょう。
この列にはnullしかなく、ヘッダー名もデータ分析には不要です。

be07_08.png

一番左の列が削除されたところで…また増えました。

実はこれ、Power Queryエディターがこれまで行った、行を削除したりヘッダーを変更したりといった操作を記録しているのです。

つまり、Power Queryエディターで行った操作は再現性を有します。

これが何を意味するのかというと、次回以降はPower Queryエディターに記録されたステップを実行するだけで、データの整形が可能になるということです。
今回の題材としている「推移表」のフォーマットが、翌年度以降も変わらない限り、今行っている作業を繰り返す必要はありません。

前回コラムでご紹介した“80%:20%”の比率を、わずかにでも打破するヒントが見えてきたのではないでしょうか。

3.手順③ 「フィル」と「列のマージ」

これまでのステップ実行の結果、ヘッダーがすべてColumn~となってしまいました。
Excelのデフォルトのシート名であるsheet~のようなものです。

Excelのシート名変更と同じで、該当のヘッダー部で素早くダブルクリックすればヘッダー名を直接打ち込むことは可能ですが、もう少し楽な方法をとります。

[ホーム]タブに、そのものずばり、「1行目をヘッダーとして使用」という機能が存在します。
現在の1行目の値は、ヘッダーに適しているでしょうか。
左の列から順に、「都道府県」「支店名」「規模」「雇用形態」「ランク」…
ここまでは悪くない、と言うよりも、ヘッダー名として最適に見えます。

ただし、それもColumn7までです。
1行目のColumn7より右の列に注目してください。

be07_09.png

「2020年度」、これをそのままヘッダーにして良いものでしょうか。
しかも、Column8より右の表示はnullです。
どうも問題がありそうです。

順番にいきましょう。まずは、nullをどうにかしたいと思います。

ここでは「フィル」機能を使います。
「フィル」は上・下のどちらかしか適用できないので、一旦、行・列の「入れ替え」を行います。

[変換]タブの「入れ替え」を押下してください。
そうすると行・列が入れ替わるので、対象の列を選択してから[ホーム]タブの「フィル」を選択し、「下」方向に適用します。

ここは一気にいきましょう。

be07_10.png

nullが「2020年度」という値で更新されました。
再度「入れ替え」を行い、行・列を元に戻せば、Column8以降の右の列の1行目に存在していたnullは、全て「2020年度」に置き換わっているはずです。

行・列を元に戻す前に、もう1つやっておきたいことがあります。

Column1とColumn2を選択し、[列の追加]タブから「列のマージ」を実行します。
「列のマージ」はその名の通り、選択した複数の列を結合し、新しい列を作成してくれます。

be07_11.png

列がマージされました。
※実際には表の一番右側に列が追加されます。画像はドラッグ&ドロップで移動後のものです。

この後の手順のためにも、年度と月を1つの値として結合しておきたい事情がありました。
どういった事情かは一旦さておき、この先の手順に進みます。

今回はここまでとなります。
次回の「【Power BI】Power Query を使ってみよう!③」で手順④~⑥をご紹介します。


「【Power BI】Power Query を使ってみよう!」シリーズ(全3回)
第1回:【Power BI】Power Query を使ってみよう!①
第3回:【Power BI】Power Query を使ってみよう!③

BI_banner01.png