データ分析の第1歩

データ分析の第1歩 ~CALCULATE関数で店舗の売上をサクッと分析~(Day5)

はじめに

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

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

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

概要(目的・背景)

本記事は、Power BI Desktopを用いて、CALCULATE関数とSUMX関数を使用した売り上げ合計の計算方法を解説します。また、基本的なSUM関数とSUMX関数の違いも触れ、それらをどのように使い分けるかについても解説します。

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

この記事は、下記のような読者を想定しています。
・Power BI 初学者:初めてPower BI Desktopを使う方々
データ分析の学習者:データを分析してビジネスに活かしたい方々

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

本ブログは、サンプルのデータを使ってハンズオンを行いながら、目標をクリアします。実際に動作確認を行いながら、Power BIの使い方を習得しましょう。この記事の目標は、以下の通りです。
・読者がCALCULATE関数やSUM関数、SUMX関数の基本の構造を理解し、売り上げ合計を正確に計算できるようになること
・ケースに応じて適切にCALCULATE関数を設定できること
これらの目標を達成することで、読者は自分のデータモデルに対して適切なDAXを設定し、より正確な分析結果を得られるようになります。

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

DAXを設定するまでのStep

今回の目的は、店舗ごとの売上合計を計算することです。この作業をDAX関数で直接記述するのは、慣れていないと少し難しく感じるかもしれません。特に、Power BI Desktopに取り込んだデータは、Excelのように帳票形式で細かい手元計算ができるわけではないため、データ操作に不慣れな場合は扱いづらさを感じることもあります。
そのため、DAXを作るまでのStep1~3で進めていきます。

Step1.Excelの関数でどのような計算式になるか、考えてみる

1.Power BI Desktopに取り込んでテーブルのデータをコピーして、Excelに貼り付けます。
➊.左メニューよりテーブルビューを選択します

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

❸.テーブルのいずれかの箇所を選択して、右クリック。「テーブルのコピー」を選択する。

➍.Excelを起動して、貼り付ける。

2.店舗別の売上合計を出力する関数を考える。
Store No.1001の売り上げ合計は、SUM関数で算出します。
条件にStore No.が「1001」を加えて、「=SUMIF(A:A,1001,E:E)」となることがわかります。
---
条件:Store No.が1001とする
合計:Price列を対象とする
---
※「合計する関数+条件設定」よりSUMIFを用います。

Step2.Excle関数をDAXに置き換えてみる

1.まずは列を合計する関数から考えてみます。
このとき候補に挙がるのはSUM関数とSUMX関数です。SUM関数は、指定した列のすべての値を単純に合計する機能しか持たないため、条件を指定して計算を行いたい場合にはSUMX関数を使用します。

Niwa
Niwa

COUNT関数とCOUNTX関数、AVERAGE関数とAVERAGEX関数などもSUM関数とSUMX関数の関係と同様です。SUM関数とSUMX関数の1パターン、関係性を理解して他にも考え方を応用できます。

2.次にCLACULATE関数を考えてみます。
CALCULATE関数は、指定したフィルターコンテキストを適用または変更したうえで式を評価する関数です。言い換えると、「特定の条件でテーブルをフィルタリングした後、その条件に基づいて集計や計算を行う」機能を持ちます。

3.では何を設定するか?
上記の結果からCULCULATE関数、SUMX関数どちらでも集計できます一般的にCULCULATE関数の記事が多いのは、汎用性の高さからです。SUMXは指定した列の合計しかできませんが、CALCULATE関数は、SUM以外にも件数や平均を集計できるため、今回はCALCULATE関数で設定します。

設定するCALCULATE関数説明
price_shinjyuku = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1001 )Store No.1001の売り上げ合計
price_shibuya = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1002 )Store No.1002の売り上げ合計
price_osaka = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1003 )Store No.1003の売り上げ合計
price_nagoya = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1004 )Store No.1004の売り上げ合計
price_sapporo = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1005 )Store No.1005の売り上げ合計

Step3.Power BI Desktopに設定してみる

1.左メニューより「テーブルビュー」を選択する。

2.Salesの「・・・」をクリックする。

3.「新しいメジャー」を選択する。

4.Store No 1001の売り上げ合計のCALCULATE関数を入力します。入力後Enterキーを押下。

5.右メニューにて「price_shinjyuku」が表示されること。

6.右メニューの「price_shinjyuku」を選択した状態で「メジャーツール」タブにて、「コンマ」ボタンを押下する。

7.残りの4つも前述した手順(3~6)を実施する。

設定するCALCULATE関数説明
price_shinjyuku = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1001 )Store No. 1001の売り上げ合計
price_shibuya = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1002 )Store No. 1002の売り上げ合計
price_osaka = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1003 )Store No. 1003の売り上げ合計
price_nagoya = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1004 )Store No. 1004の売り上げ合計
price_sapporo = CALCULATE(Sum(Sales[Price]),'Sales'[Store No.]=1005 )Store No. 1005の売り上げ合計

➊[Store No.]=1002の設定画像

➋[Store No.]=1003の設定画像

❸[Store No.]=1004の設定画像

➍[Store No.]=1005の設定画像

設定は以上です。

結果(成果と評価)

この記事を通じて得ることができる学びは以下の通りです。
・CALCULATE関数の柔軟性
特定の条件を動的に適用し、簡単にフィルタリングした計算が可能であることが再確認されました。これにより、複数条件を組み合わせた売上分析が実現します。
・SUM関数とSUMX関数の使い分けの重要性
SUM関数は単純な列の合計に適し、SUMX関数は行単位の計算が必要な場合に適用するという明確な使い分けを理解することが、データ集計の要点であることが分かりました。

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

CALCULATE関数とSUMX関数は、それぞれ異なるシナリオで強力なツールとなり得ます。本ブログを通じて、読者はこれらの関数を正しく理解し、Power BIでの計算に適切に活用できるようになりました。次回の記事では、カスタム列を使って、Excelで慣れ親しんでいるVLOOKUPに類似した機能を説明します。

-データ分析の第1歩
-