【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ファイルを読み込みます。
こんな目立つ場所にExcelのアイコンがあります。
(Power BIのバージョンによります)
このあと、Power Queryエディターが起動します。
ここで「読み込み」を押下すると、Power Queryエディターの起動はスキップされ、Power BIが起動します。
Power BIとPower Queryの切り替えはいつでも行えるので、あまり慎重にならなくても大丈夫です。
Power Queryエディターが起動しました。Excelファイルが読み込まれています。
右端までスクロールしてみましょう。
画像を見て、気づかれた点がいくつかあると思います。
- 読み込んだExcelファイルの1行目がヘッダー(列のタイトル)として扱われている。
- セルの結合が解除されている。
- もともと空白だったセルと、結合が解除されたセルの一番上の行以外にnullと表示されている。
- 右上にあった「社外秘」のテキストボックスが消えている。
実際に動かしてみると、「こういう動きをするのだな」と実体験として腹落ちしますね。
テキストボックス(オブジェクト)が勝手に消えてくれているのは好都合です。
ちなみに、nullとは「何もない」という意味です。
数値の0とも違うものなので、お気を付けください。
(NULL撲滅委員会:http://mickindex.sakura.ne.jp/database/db_getout_null.htmlより)
2.手順② 再現性を有するということ
それではデータ整形していきましょう。
まず、明らかに不要な1行目(ヘッダー行のことではありませんので、注意してください)を削除します。
[ホーム]タブの「行の削除」から「上位の行の削除」を選択します。
「上位の行の削除」というポップアップが表示されるので、ここでは「1」と指定します。
「3行消したい」と思った場合は「3」と入力します。
1行目が消え、先ほどまで2行目だった行が新たな1行目として繰り上がりました。
そしてもう一つ変化が…。
赤枠で囲った部分に、「削除された最初の行」という文言が追加されています。
作業を進めます。次は一番左の列も削除することにしましょう。
この列にはnullしかなく、ヘッダー名もデータ分析には不要です。
一番左の列が削除されたところで…また増えました。
実はこれ、Power Queryエディターがこれまで行った、行を削除したりヘッダーを変更したりといった操作を記録しているのです。
つまり、Power Queryエディターで行った操作は再現性を有します。
これが何を意味するのかというと、次回以降はPower Queryエディターに記録されたステップを実行するだけで、データの整形が可能になるということです。
今回の題材としている「推移表」のフォーマットが、翌年度以降も変わらない限り、今行っている作業を繰り返す必要はありません。
前回コラムでご紹介した“80%:20%”の比率を、わずかにでも打破するヒントが見えてきたのではないでしょうか。
3.手順③ 「フィル」と「列のマージ」
これまでのステップ実行の結果、ヘッダーがすべてColumn~となってしまいました。
Excelのデフォルトのシート名であるsheet~のようなものです。
Excelのシート名変更と同じで、該当のヘッダー部で素早くダブルクリックすればヘッダー名を直接打ち込むことは可能ですが、もう少し楽な方法をとります。
[ホーム]タブに、そのものずばり、「1行目をヘッダーとして使用」という機能が存在します。
現在の1行目の値は、ヘッダーに適しているでしょうか。
左の列から順に、「都道府県」「支店名」「規模」「雇用形態」「ランク」…
ここまでは悪くない、と言うよりも、ヘッダー名として最適に見えます。
ただし、それもColumn7までです。
1行目のColumn7より右の列に注目してください。
「2020年度」、これをそのままヘッダーにして良いものでしょうか。
しかも、Column8より右の表示はnullです。
どうも問題がありそうです。
順番にいきましょう。まずは、nullをどうにかしたいと思います。
ここでは「フィル」機能を使います。
「フィル」は上・下のどちらかしか適用できないので、一旦、行・列の「入れ替え」を行います。
[変換]タブの「入れ替え」を押下してください。
そうすると行・列が入れ替わるので、対象の列を選択してから[ホーム]タブの「フィル」を選択し、「下」方向に適用します。
ここは一気にいきましょう。
nullが「2020年度」という値で更新されました。
再度「入れ替え」を行い、行・列を元に戻せば、Column8以降の右の列の1行目に存在していたnullは、全て「2020年度」に置き換わっているはずです。
行・列を元に戻す前に、もう1つやっておきたいことがあります。
Column1とColumn2を選択し、[列の追加]タブから「列のマージ」を実行します。
「列のマージ」はその名の通り、選択した複数の列を結合し、新しい列を作成してくれます。
列がマージされました。
※実際には表の一番右側に列が追加されます。画像はドラッグ&ドロップで移動後のものです。
この後の手順のためにも、年度と月を1つの値として結合しておきたい事情がありました。
どういった事情かは一旦さておき、この先の手順に進みます。
今回はここまでとなります。
次回の「【Power BI】Power Query を使ってみよう!③」で手順④~⑥をご紹介します。
「【Power BI】Power Query を使ってみよう!」シリーズ(全3回)
第1回:【Power BI】Power Query を使ってみよう!①
第3回:【Power BI】Power Query を使ってみよう!③