この記事で分かること
Related関数を用いた、別テーブルから値を取得する方法と活用例
Related関数とExcelのVlookup関数との類似性
スライサの作り方
本講座の対象者はExcel関数に習熟している人です。詳しくは以下の記事を参照してください。

PowerBI実践課題
次のようなビジネス課題を想定します。地球温暖化が社会課題になっている今、とある会社でCO2排出量低減が経営課題となりました。まず必要になるのは現状把握です。
ここでは本社、支社の各拠点が使用しているエネルギー(電気、ガス、ガソリン)の使用量をCO2排出量に換算してグラフ化することを課題にします。なおCO2排出量はエネルギー使用量とCO2換算係数の掛け算です。
先に解答を下に示します。縦軸にエネルギー毎のCO2排出量、横軸に年月を取った積み上げ面グラフが解答イメージです。拠点毎に値を抽出するため「スライサ」と呼ばれるフィルタを追加します(解答画面の右側)。

使用するデータ
エネルギーデータは拠点毎、月毎、エネルギー毎の値を保存した表です。マスタはエネルギー毎の換算係数を表にしています。
エネルギーデータ(テーブル名:D01_Energy)

CO2換算マスタ(テーブル名:D02_CO2kanzan)

もし良ければ、下のExcelデータをダウンロードして演習に使って下さい。
PowerBI実践課題の解答
結論 DAX関数式
C0101_CO2排出量 = RELATED(D02_CO2kanzan[CO2換算係数])*[値]/1000
1000で割るのはkgをtonに変えるためです
DAX関数式の説明
今回のRelated関数の使い方は、エネルギーデータ各行の「値種類」に対応する「CO2換算係数」を、マスタから取得することです。引数と戻り値は次の通りです。
引数「CO2換算係数」
戻り値「CO2換算係数」
Related関数の使い方はExcelのVlookup関数に似ているので習得は容易です。引数の渡し方を下の表のように比較すると、それが良くわかります。

ではVlookup関数でいう「検索値」はどうやって渡すのか?実は「検索値」は関数の中ではなく、リレーションシップを作って渡す必要があります。
なお、リレーションシップを作るとは、キーとなる項目列をテーブル同士で紐付けすることです。
詳しくは次の”Power BIに実装”で説明します。
Power BIに実装
まずデータを取り込みます。次にDATE関数で日付列(項目名:C0001_日付)を作ります。いずれも方法は講座②と同じです。

リレーションシップ作成
①モデリングー②リレーションシップの管理 の順にクリックします。

「新しいリレーションシップ」(左上)をクリックします(今回はリレーションシップが自動作成されたのですが、手順を示すために敢えて削除して作り直しています)。

①をクリックしてテーブルを選択-②ヒモ付けする列をそれぞれ選択 ③「保存」をクリックします。

新しい列を作り、「結論」で述べたDAX関数式を書き込みます。方法は講座②と同じです。RELATED() と入力すると括弧内の引数候補一覧が現れるので、引数は[CO2換算係数]を選択します。
グラフ作成
「視覚化」一覧の①「積み上げ面グラフ」をクリックします。

X軸、Y軸、凡例に各値をドラッグ&ドロップするとグラフが完成します。


なお、グラフが下のように横軸が「年」になっている場合

次のように対応します。①X軸のVマークをクリック―②C0001_日付 を選択

スライサ作成
①何もないところをクリック―②「スライサ」をクリックします。

①「拠点」列をドラッグ&ドロップすると冒頭の課題解答イメージのグラフとスライサが完成します。スライサの選択肢をクリックすると値が変わることを確認してみてください。
グラフやスライサの体裁を整えたい場合は②の筆マークをクリックして設定変更してください。

まとめ
以上、Related関数を使ってマスタからデータを取得する方法を説明しました。ExcelのVlookup関数と類似しているので、Related関数は扱いやすい関数です。
但しリレーションシップは別画面で作らなければならない点が異なります。これはPowerBI独特の操作性ですね。
少しでもPower BIの理解に役立てれば幸いです。(終わり)
コメント