この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
Power BIでデータの可視化にチャレンジしている、チャレンジしたい皆さん。
データの取り込み時に、ピボット・アンピボットしたかった、データを結合したかったなど、思いつつ仕方なしに元データ側を修正したことはありませんでしょうか。
簡単にですがPower BIへの取り込み時にデータを加工する方法をご案内します。
これにより、元のフォーマットには手を加えずに可視化が可能になります。
環境は、Power BI Desktop(無料)を使用します。
今回は、以下3点を記載します。
- タイトル行の消去
- 取り込むデータのピボット・アンピボット
- 取り込むデータの結合
今回使用するデータですが以下の2点になります。
- 点数表のデータ
- クラス分けのデータ
【タイトル行の消去】
①Power Queryをエディターを起動
データを取り込み時に「データの変換」を選択します。
②加工するデータの選択
編集したい、データ(今回は点数表)を選択します。
カラム名が、1年生点数表とColumn〇になっていて正確に認識されていないことがわかります。
だからといって、毎回元ファイルのタイトルを消して取り込むのは大変です。
そこでさっそく1つ目の「タイトル行の消去」を行います。
③タイトル行の消去
タイトル行の消去ですが、「ホーム」タブの「1行目をヘッダーとして使用」を選択します。
下の画像のように正しくカラム名が認識されたのが分かります。
また、適用したステップが1つ増えていることもわかります。
このようにどんな加工を実施したのか後から追いやすいのもPower BIの良さです。
④「Column1」の変換
正しいカラムを指定できましたが「Column1」として認識されているカラムがあるので修正しましょう
※Power BIでは空のカラムは「Column〇」と自動的にカラム名を付与します。
適当なカラム名を入力します。(無難に氏名にしました。)
正しく変更され「適用したステップ」も1つ追加されています。
おまけもありましたがこれでタイトルの消去は終わりです。
【取り込むデータのピボット・アンピボット】
さっそくデータのアンピボットをします。
ピボットについても同様の手順で可能です。
同じくPowerQueryで実施します。
①アンピボットの対象カラム選択
アンピボットする対象のカラムを選択します。
②アンピボットの実行
「変換」タブの「列のピボット解除」を選択します。
※ピボット処理をする場合は、「列のピボット」を選択します。
以下の画像のようにアンピボットが実行されたことがわかります。
想定と違った場合「適用したステップ」の「ピボット解除された列」の×を選択すれば元に戻せるのでトライ&エラーも簡単に可能です。
※アンピボットされた際にできるカラムは「属性」と「値」で固定です。必要に応じて変更してください。
これでアンピボットの紹介は終わりです。
【取り込むデータの結合】
いよいろラストのデータの結合です。
Power BIはローもカラムも結合できるのですが、ロー結合はただの行の追加で面白みがないのでカラム結合を実施したいと思います。
点数表のデータをアンピボットしたものとクラス分けのデータを結合します。
①クエリのマージ
Power BIでのカラム結合は、「ホーム」タブの「クエリのマージ」から行います。
②マージの設定
結合するファイルをプルダウンより選択します。
ここでは、カラム名が同様であれば自動で紐づけがされます。
ちなみに今回サンプルデータのカラム名が「氏名」と「名前」となっており、紐づけができません。
※本当にたまたま間違えただけです。
こんな時でもPower BIなら安心です。手動で紐づけを行うことができます。
「氏名」と「名前」を選択します。
そして結合の種類を選び、「OK」を押すだけです。
③追加するカラムの設定
あと1ステップ必要です。
それは追加するカラムの選択です。
今回は2カラムのみなので特に選ぶ意味を感じませんが、カラム数が多い場合ダッシュボード作成がやりづらくなるのでなるべく削りましょう。
赤枠部分のように追加したデータが表示されていますのでカラム名の横のアイコンを選択します。
以下のようなカラム選択ウィンドウが出ますので追加するカラムを選択してください。
※このときに結合条件で使用したカラム(今回なら名前)を選択してしまうと内容が同じカラムを2重で所持してしまうので注意してください。
以下のように望む形になったことを確認し、「保存して適用」を選択して取り込みます。
以上です。
可視化機能も豊富ながら実はちょっとしたデータ加工なんかもできてPowerBIはわりと奥が深いです。
皆様も無料なのでぜひ使ってみてください。