
以前のTechRepublicチュートリアル「Microsoft Power BIで計算列を使って利益率を計算する方法」では、既存のテーブルに計算列を追加することで利益率をパーセンテージで計算する方法を紹介しています。これはPower BIで利益率を計算する便利なテクニックですが、計算列を追加したくない場合もあります。そのような場合は、カスタムメジャーを使用して、利益を通貨値とパーセンテージの両方で返すことができます。
参照:採用キット: Microsoft Power BI 開発者(TechRepublic Premium)
このチュートリアルでは、DAX を使用して Adventure Works のビジュアルに 2 つの利益メジャーを作成する方法を説明します。また、計算列ではなくメジャーを使用する理由についても説明します。
Windows 10 64ビットシステムでMicrosoft Power BIを使用しています。デモ用の.pbixファイル「Adventure Works Sales」はGitHubからダウンロードできます。ダウンロードしたら、.pbixファイルをダブルクリックしてPower BIで開き、手順に従って操作するか、ご自身の.pbixファイルを使用してください。最終的な結果を少しだけ確認したい場合は、こちらのデモファイルをご覧ください。
ジャンプ先:
- 計算列の代わりにメジャーを使用するタイミングを知る方法
- 売上表と表現の準備
- 利益還元策の作り方
- 利益率を計算するための2番目のメジャーを追加する
計算列の代わりにメジャーを使用するタイミングを知る方法
利益値を返す際に、計算列を使用するかカスタムメジャーを使用するかは、必ずしも重要ではありません。しかし、重要な場合は、十分な情報に基づいた判断を行う必要があります。まずは、両方のアプローチと最適なユースケースについて簡単に説明しましょう。
- 計算列:行ごとに (行コンテキスト) 評価され、モデルの一部となる DAX 式の結果。
- カスタム メジャー:通常は集計として機能する計算です。Power BI は必要に応じてその場で評価し、結果はモデルに保存されません。
参照: Microsoft Power BI で DAX の基本に取り組む方法(TechRepublic)
計算列とカスタムメジャーのどちらを使用するかを決めるのは、思ったほど複雑ではありません。計算でデータを行ごとに評価する場合は、計算列が最適です。計算で複数のレコードを評価する場合、またはデータをフィルター処理する予定の場合は、メジャーの方が適しています。
売上表と表現の準備
プロジェクトに最適なカスタムメジャーアプローチが決定したら、次のステップは適切なDAX式を見つけることです。考慮すべき利益には、粗利益、営業利益、純利益の3種類があります。ここで計算する2つの指標は、いずれも粗利益、つまり売上高から商品原価と事業運営費を差し引いたものです。
Profit = Sales - Expenses
利益率をパーセンテージで返すには、次の数式を使用します。
% Profit Margin = (Sales - Expenses) / Expenses
幸いなことに、利益率を計算するためのメジャーを追加するのは簡単です。まずは図Aに示す売上表を確認しましょう。このシンプルな表ビジュアルに両方のメジャーを追加するからです。
図A

まず、テーブルには「売上高」、「受注明細」、「製品原価合計」の3つのフィールドが表示されます。各注文の利益を確認するため、「売上注文」テーブルの「売上注文」フィールドも含めます。1つの注文に複数の商品やレコードが含まれる場合があるため、これが集計値となります。
この売上表ビジュアルを作成するには、次の手順を実行します。
- [視覚化] ペインで [テーブル] をクリックします。
- フィールド ペインで、売上テーブルを展開し、売上金額フィールドと合計製品コスト フィールドを確認します。
- 販売注文テーブルを展開し、販売注文フィールドを確認します。
幸いなことに、売上表には「製品総コスト」フィールドが含まれています。ご自身のプロジェクトのコストを評価する際には、すべての詳細を得るために、まるで宝探しをしなければならないかもしれません。既存の「コスト」フィールドに必要なものがすべて含まれているとは考えないことが重要です。簡潔にするため、またデモファイルには他に確認すべき値がないため、「製品総コスト」の値は網羅的であると確信しています。
利益と利益率を返す2つの計算列にもお気づきかもしれません。これらは利便性のために用意されているので、必要に応じて確認したり、さらに詳しく調べたりすることができます。ただし、今回のデモでは必要ありません。
利益還元策の作り方
次に、次の手順で利益を計算するメジャーを作成しましょう。
- テーブル ビジュアルが選択されている場合は、その外側の任意の場所をクリックして選択を解除します。
- フィールド ペインで、sales テーブルをクリックします。
- 必要に応じて、[表ツール] メニューをクリックします。
- [新しいメジャー] をクリックすると、Power BI によって、一般的な名前を使用して Sales テーブルにメジャーが追加されます。
- 数式バーに次の DAX 式を入力します。
Profit Amount Measure = SUM(Sales[Sales Amount]) - SUM(Sales[Total Product Cost])
- 測定をコミットするには、数式の左側にあるチェックマークをクリックします。
図Bに示すように、Power BIは式の最初の部分「Profit Amount Measure」を使用して、汎用メジャーの名前を変更します。この時点で、DAX SUM関数について疑問に思われるかもしれません。
図B

メジャーは集計または列で使用し、計算列は行で使用してください。SUM関数は集計関数です。この式は、各注文の売上高の合計から製品原価の合計を差し引き、売上高の合計を各注文の最初の合計から差し引きます。
ビジュアルにメジャーを追加する
ビジュアルにメジャーを追加するには、テーブルビジュアルを選択し、「フィールド」ペインで「Profit Amount Measure」にチェックを入れるだけです。結果は図Cに示されています。この2つのテーブル間の関係性がこのビジュアルのマジックです。ビジュアルにはSales Orderの値が含まれているため、SUM関数を使って各注文の売上額とコストを合計できます。
図C

SUM集計を定義するためにSales Orderフィールドを使用する必要はありません。日付、月、あるいは年単位で利益を確認したい場合もあるでしょう。関連フィールドを追加するだけで、Power BIが残りの作業をすべて実行します。
図Dに示すように、2つのテーブル間には既に関係が存在します。この関係がなければ、メジャーは機能しません。
図D

強調しすぎることはありませんが、これらの指標を自分の仕事に適用する場合、望ましい結果を得るためにはテーブル間の関係性を考慮する必要があるかもしれません。必要なものがすべて同じテーブルにある場合、関係性は無関係です。
利益率を計算するための2番目のメジャーを追加する
では、利益率を計算するための2つ目のメジャーを追加しましょう。上記の手順に従い、新しいメジャーを作成します。ただし、ステップ5では以下の式を使用します。
% Profit Margin Measure = (SUM(Sales[Sales Amount]) - SUM(Sales[Total Product Cost])) / SUM(Sales[Total Product Cost])
図Eは、テーブルビジュアルに追加された「% Profit Margin(利益率)」メジャーを示しています。最初のメジャーと同様に、「Sales Order(販売注文)」フィールドを他の関連フィールド、または「Sales(売上)」テーブル内の他のフィールドと交換することで、特定の目標にとってより有意義な結果が得られる場合があります。
図E

これで、利益を計算するためのメジャーと利益率を計算するためのメジャーの2つができました。どちらのメジャーも簡単に作成でき、他のビジュアルに追加できます。
次に読む:最高のビジネス インテリジェンス ツール(TechRepublic)