データ分析の第1歩

データ分析の第1歩 ~データ連携を効率化!LOOKUPVALUE関数とRELATED関数の活用法~(Day6)

はじめに

Power BI Desktopは、ビジュアライゼーションとレポート作成のための強力なツールです。しかし、使い方が分からない、使い始めるための適切なデータが手元にない、といった理由でPower BIの活用に踏み出せない方も多いかもしれません。本ブログでは、サンプルデータを提供し、Power BIを使用したレポートやダッシュボードの構築方法を連載形式で解説していきます。本記事はDay6です。Day1から構築したPower BIファイルを引き続き設定していきます。
---これまでの記事---
◆データ分析の第1歩 ~CALCULATE関数で店舗の売上をサクッと分析~(Day5)

---GOALのイメージ---

ダッシュボードを完成させるまでのプロセスを、複数回にわたるハンズオン形式のブログでわかりやすく説明します。

概要(目的・背景)

Power BI Desktopは、データの可視化や分析を効率的に行うための強力なツールです。特に、データモデリングにおいて「カスタム列」の作成やDAX関数の活用は、データの結合や参照を柔軟に行う上で欠かせません。本記事では、ExcelのVLOOKUP関数に相当する機能をPower BIで実現する方法として、「カスタム列」の作成とDAX関数「LOOKUPVALUE関数」「RELATED関数」の使い方を詳しく解説します。これにより、複数のテーブル間でのデータ参照や結合を効果的に行う方法を学びます。

読み手(誰に向けた記事か?)

この記事は、下記のような読者を想定しています。
Power BI初学者: 初めてPower BI Desktopを使う方
データ分析の学習者:データモデリングやDAX関数の活用方法を深めたい方
特に、ExcelのVLOOKUP関数に慣れ親しんでおり、それと同様の機能をPower BIでどのように実現できるかを知りたい方に最適な内容です。

ブログの目標設定(具体的な目標)

本ブログは、サンプルのデータを使ってハンズオンを行いながら、目標をクリアします。実際に動作確認を行いながら、Power BIの使い方を習得しましょう。この記事の目標は、以下の通りです。
・Power BIで「カスタム列」作成手順を理解し、作成できるようになること
・DAX関数「LOOKUPVALUE関数」と「RELATED関数」の構文と使用方法を理解し、適切な場面で活用できるようになること
・複数のテーブル間でのデータ参照や結合を、Power BI上で効果的に行えるようになること
これらの目標を達成することで、データモデリングの効率化と高度なデータ分析が可能となり、業務の生産性向上に寄与します。

方法(アプローチ・使用技術)

カスタム列とは、既存のデータに新たな計算結果や情報を追加するための機能です。一般的に「カスタム列を増やしすぎるとパフォーマンスに影響を与える」と言われていますが、私の経験では、数百万~千万行規模のデータセットでない限り、顕著なパフォーマンス劣化が発生することは少ないと考えられます。

今回やりたいことは「Salesテーブルに「利益(Profit)」の列を追加したい」です。

➊作業の流れは、ステップごとに分割して説明します。
 Step1.ExcelのVLOOKUPの要領でSalesテーブルにCost Price(1個当たりの原価)を追加する
 Step2.原価合計(数量×1個当たりの原価) を算出する
 Step3.利益(売上-原価)を算出する
 Step4.Step1~Step3を1つの構文にまとめる

Step1.ExcelのVLOOKUPの要領でSalesテーブルにCost Price(1個当たりの原価)を追加する

Step2.原価合計(数量×1個当たりの原価) を算出する

Step3.利益(売上-原価)を算出する

Step4.Step1~Step3を1つのコードにまとめる

➋.「LOOKUPVALUE関数」と「RELATED関数」について

前述した方法は、LOOKUPVALUE関数を用いて説明しました。Power BIはExcelとは違い、データベースのリレーション設定を行っているため、「RELATED関数」を用いて同様の結果を得ることができます。

関数「LOOKUPVALUE関数」と「RELATED関数」のちがい
LOOKUPVALUE関数リレーションシップ無しで、条件を指定して値を取得することができる。
RELATED関数リレーションシップを活用することで、簡潔なコードでデータを取得できる。

今回はSalesテーブルとProductMasterテーブル間でリレーションシップが設定されているため、簡潔でわかりやすいRELATED関数を利用します。➊・➋の結果から、「Salesテーブルに「利益(Profit)」の列を追加したい」は、以下のコードを使用して構築します。

1.これまでの検討結果をPower BI Desktopへ設定します。テーブルビューを選択する。

2.「Sales」テーブルを選択する。

3.テーブルツールタブから「新しい列」ボタンを押下する。

4.コードを入力する。入力後Enterキーを押下する。

5.右メニューに「Profit」が表示されることを確認する。

カスタム列の説明と設定は以上です。

追加設定

以降では、次回の「ビジュアル設定」に向けて、SalesテーブルにDAXの設定を追加します。具体的には、店舗ごとの利益と利益率を計算するDAXを設定します。以下の設定内容を追加で登録してください。
なお、設定作業はDay5で説明したCALCULATE関数の手順と同じです。

・[Store No.]=1001の利益(Profit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1002の利益(Profit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1003の利益(Profit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1004の利益(Profit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1005の利益(Profit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1001の利益率(%GrossProfit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1002の利益率(GrossProfit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1003の利益率(GrossProfit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1004の利益率(GrossProfit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・[Store No.]=1005の利益率(GrossProfit)を「新しいメジャー」より設定する

書式は以下の設定で登録する。

・全店舗売上合計を「新しいメジャー」より設定する

書式は以下の設定で登録する。

結果(成果と評価)

この記事を通じて得ることができる学びは以下の通りです。
カスタム列の適用範囲の理解
カスタム列は、視覚的にデータを加工したい場合やDAX関数を使用しない場面で有効であることが分かりました。一方で、大規模データでは計算の効率性が課題となるため、場合によってはDAX関数に切り替えることが必要です。
LOOKUPVALUE関数とRELATE関数の使い分け
LOOKUPVALUE関数は、複数の条件を満たす行を参照する際に便利ですが、リレーションシップが定義されていない場合でも使用できる点が特徴です。一方、RELATED関数は既存のリレーションシップを活用するため、コードが簡潔である一方、リレーションシップの設定が前提条件となります。このため、プロジェクトの要件に応じて使い分けることが重要です。
・リレーションシップの管理の重要性
RELATED関数を使用する際には、適切なリレーションシップの設定が重要であると再認識しました。リレーションシップの設定ミスやデータ不整合が発生すると、結果に大きな影響を及ぼします。

まとめ(結論と今後の展望)

本記事では、Power BIにおける「カスタム列」とDAX関数「LOOKUPVALUE関数」「RELATED関数」を活用したデータモデリングの方法を紹介しました。これらを効果的に活用することで、複数テーブル間のデータ結合や参照が容易になり、分析業務の効率が大幅に向上します。
次回の記事では、ついにダッシュボードの画面構築に取り掛かります。

-データ分析の第1歩
-