チュートリアル:Power BI Desktop でディメンション モデルから魅力的なレポートを作成する
適用対象: Power BI Desktop Power BI サービス
このチュートリアルでは、ディメンション モデルから始めて、開始から終了まで 45 分で美しいレポートを作成します。
あなたは、AdventureWorks に勤務しています。上司は最新の売上高に関するレポートを見たいと考えており、 次の内容を含むエグゼクティブ サマリを要求してきました。
- 2019 年 2 月に売上が最も多かったのは何日か?
- 会社が最も成功を収めたのは、どの国/地域か?
- 会社が投資を継続する必要があるのは、どの製品カテゴリとどの業種のリセラーか?
AdventureWorks Sales サンプル Excel ブックを使用すると、このレポートを即座に作成できます。 最終的なレポートは次のようになります。
完成品を確認する必要がある場合は、 完成した Power BI .pbix ファイルをダウンロードすることもできます。
Note
SQL データベースのデータを扱う場合は、AdventureWorks サンプル データベースの記事に、GitHub リポジトリ内のダウンロード可能な AdventureWorks SQL サンプル データベースへのリンクが記載されています。 SQL データベースを使用する場合は、このチュートリアルのさまざまな手順を変更する必要があります。
それでは始めましょう。
このチュートリアルでは、以下について説明します。
- 変換を数回行ってデータを準備する
- タイトル、3 つのビジュアル、スライサーを含むレポートを作成する
- 仕事仲間と共有できるように、レポートを Power BI サービスに発行する
前提条件
- 開始する前に、Power BI Desktop をダウンロードする必要があります。
- レポートを Power BI サービスに発行する予定があり、まだサインアップしていない場合は、無料試用版にサインアップします。
データの取得: サンプルをダウンロードする
AdventureWorks Sales サンプル Excel ブックをダウンロードします。
Power BI Desktop を開きます。
[ホーム] リボンの [データ] セクションで、 [Excel] を選択します。
サンプルのブックを保存した場所に移動し、 [開く] を選択します。
データの準備
[ナビゲーター] ウィンドウには、データを "変換する" または "読み込む" オプションがあります。 [ナビゲーター] には、データの範囲が正しいことを確認できるように、データのプレビューが表示されます。 数値データ型は斜体で示されます。 このチュートリアルでは、データを読み込む前に変換します。
すべてのテーブルを選択し、 [データの変換] を選択します。 シート ( _data というラベルが付いたもの) を選択しないようにしてください。
列のデータ型が次のテーブルのデータ型と一致することを確認します。 Power BI で自動的にデータ型を検出できるようにするには、クエリを選択してから、1 つまたは複数の列を選択します。 [変換] タブで、 [データ型の検出] を選択します。 検出されたデータ型を変更するには、 [ホーム] タブで [データ型] を選択し、リストから適切なデータ型を選択します。
クエリ | 列 | データ型 |
---|---|---|
Customer | CustomerKey | 整数 |
Date | DateKey | 整数 |
Date | Date | |
MonthKey | 整数 | |
成果物 | ProductKey | 整数 |
Standard Cost | 10 進数 | |
List Price | 10 進数 | |
Reseller | ResellerKey | 整数 |
Sales | SalesOrderLineKey | 整数 |
ResellerKey | 整数 | |
CustomerKey | 整数 | |
ProductKey | 整数 | |
OrderDateKey | 整数 | |
DueDateKey | 整数 | |
ShipDateKey | 整数 | |
SalesTerritoryKey | 整数 | |
Order Quantity | 整数 | |
Unit Price | 10 進数 | |
Extended Amount | 10 進数 | |
Unit Price Discount Pct | パーセント | |
Product Standard Cost | 10 進数 | |
Total Product Cost | 10 進数 | |
Sales Amount | 10 進数 | |
SalesTerritory | SalesTerritoryKey | 整数 |
販売注文 | SalesOrderLineKey | 整数 |
[ホーム] タブに戻り、[閉じて適用] を選択します。
データのモデル化
読み込んだデータは、レポートのための準備がほとんど完了しています。 データ モデルを調べて、いくつかの変更を加えましょう。
左側にある [モデル ビュー] を選択します。
データ モデルは、次の図のようになります。各テーブルはボックスで囲まれています。
リレーションシップの作成
このモデルは、データウェアハウスで見られる典型的な "スター スキーマ" です。これは、星の形に似ています。 星の中心にあるのは、ファクト テーブルです。 周囲にあるテーブルはディメンション テーブルと呼ばれ、リレーションシップにより、ファクト テーブルと関連付けられます。 ファクト テーブルには、Sales Amount (売上高) や Product Standard Cost (製品標準コスト) など、販売トランザクションに関する数値情報が含まれています。 ディメンションにより、コンテキストが提供されるため、特に次のような分析を行うことができます。
- 販売された製品...
- 販売先...
- 販売したリセラー...
- 販売区域。
よく見ると、Date (日付) テーブルを除いて、すべてのディメンション テーブルがリレーションシップでファクトに関連付けられていることがわかります。 ここで、いくつかのリレーションシップを Date に追加してみましょう。 DateKey を Date テーブルから、Sales (販売) テーブルの OrderDateKey にドラッグします。 線の両端にある 1 とアスタリスク * (多) で示されているように、Date から Sales へいわゆる "1 対多" のリレーションシップを作成しました。
特定の日付に 1 つ以上の販売注文があるため、リレーションシップは "1 対多" です。 各日付に販売注文が 1 つしかなければ、リレーションシップは "1 対 1" になります。 線の中央にある小さな矢印は、"クロス フィルター処理の方向" を示します。これは、Date テーブルの値を使用して、Sales テーブルをフィルター処理できることを示しているため、このリレーションシップにより、Sales order がいつ行われたかを分析できます。
Sales テーブルには、Due Date (期限) や Ship Date (出荷日) など、販売注文に関連する日付について詳細な情報が含まれています。 ドラッグして Date テーブルにさらに 2 つのリレーションシップを追加しましょう。
- DateKey から DueDateKey
- DateKey から ShipDateKey
OrderDateKey の最初のリレーションシップは実線で示されており、アクティブであることがわかります。 他の 2 つは破線で示されており、非アクティブです。 Power BI では、既定により、アクティブなリレーションシップを使用して Sales と Date が関連付けられます。 このため、SalesAmount の合計は、Due Date や Ship Date ではなく Order Date (注文日) で計算されます。 この動作に影響を与えることができます。 このチュートリアルで後ほど説明する「追加の手順: DAX でメジャーを作成する」を参照してください。
キー列を非表示にする
一般的なスター スキーマには、ファクトとディメンションの間のリレーションシップを保持するキーがいくつか含まれています。 通常は、レポートでキー列を使用する必要はありません。 キー列を非表示にして、[フィールド] リストに表示されるフィールドの数を削減し、データ モデルを使いやすくしましょう。
すべてのテーブルを調べて、Key で終わる名前を持つ列を非表示にします。
列の横にある目のアイコンを選択し、 [Hide in report view](レポート ビューで非表示にする) を選択します。
[プロパティ] ウィンドウで列の横にある目のアイコンを選択することもできます。
非表示フィールドの横には、次のアイコン (斜線が入った目) が表示されます。
次のフィールドを非表示にします。
テーブル | 列 |
---|---|
Customer | CustomerKey |
Date | DateKey |
MonthKey | |
成果物 | ProductKey |
Reseller | ResellerKey |
Sales | CustomerKey |
DueDateKey | |
OrderDateKey | |
ProductKey | |
ResellerKey | |
SalesOrderLineKey | |
SalesTerritoryKey | |
ShipDateKey | |
販売注文 | SalesOrderLineKey |
SalesTerritory | SalesTerritoryKey |
これで、データ モデルは次のデータ モデルのようになり、Sales と他のすべてのテーブル間のリレーションシップは保持されたまま、すべてのキー フィールドが非表示になります。
階層を作成する
非表示の列のおかげでデータ モデルは使いやすくなりましたが、ここでいくつかの "階層" を追加すると、モデルをさらに使いやすくすることができます。 階層を使用すると、グループの移動が容易になります。 たとえば、市は都道府県にあり、都道府県は国または地域にあります。
次の階層を作成します。
階層の最上位または最も詳細な粒度のフィールドを右クリックし、 [階層の作成] を選択します。
[プロパティ] ウィンドウで、階層の [名前] を設定し、レベルを設定します。
次に、 [レベルの変更を適用] します。
また、レベルを追加した後、[プロパティ] ウィンドウで階層内のレベルの名前を変更することもできます。 Date テーブル内にある Fiscal (会計) 階層の Year (年) および Quarter (四半期) レベルの名前を変更する必要があります。
作成する必要がある階層を次に示します。
テーブル | 階層名 | Levels |
---|---|---|
Customer | [地理的な場所] | 国/地域 |
State-Province | ||
City | ||
郵便番号 | ||
Customer | ||
Date | Fiscal | Year (Fiscal Year) |
Quarter (Fiscal Quarter) | ||
Month | ||
Date | ||
Product | 製品 | カテゴリ |
サブカテゴリ | ||
モデル | ||
Product | ||
Reseller | [地理的な場所] | 国/地域 |
State-Province | ||
City | ||
郵便番号 | ||
Reseller | ||
販売注文 | Sales Orders | Sales Order |
Sales Order Line | ||
SalesTerritory | Sales Territories | Group |
Country-Region | ||
リージョン |
データ モデルは、次のデータ モデルのようになります。 同じテーブルが含まれますが、各ディメンション テーブルには、階層が含まれます。
テーブル名を変更する
モデリングを完了には、[プロパティ] ウィンドウで次のテーブルの名前を変更しましょう。
古いテーブル名 | 新しいテーブル名 |
---|---|
SalesTerritory | Sales Territory |
販売注文 | Sales Order |
Excel テーブル名にはスペースを含めることができないため、この手順が必要です。
以上で、最終的なデータ モデルの準備ができました。
追加の手順: DAX でメジャーを作成する
DAX 数式言語による "メジャー" の作成は、非常に強力なデータ モデリングです。 DAX の詳細については、Power BI のドキュメントを参照してください。 ここでは、既定の注文日ではなく、販売注文の期限で総売上高を計算する基本的なメジャーを作成しましょう。 このメジャーでは、USERELATIONSHIP 関数を使用して、このメジャーのコンテキストの DueDate で Sales と Date 間のリレーションシップをアクティブにします。 次に、CALCULATE を使用して、そのコンテキスト内の売上高を合計します。
左側の [データ ビュー] を選択する。
[フィールド] リストで [Sales] テーブルを選択します。
[ホーム] リボンで、 [新しいメジャー] を選択します。
このメジャーを選択または入力して、既定の注文日ではなく、販売注文の期限で合計売上高を計算します。
Sales Amount by Due Date = CALCULATE(SUM(Sales[Sales Amount]), USERELATIONSHIP(Sales[DueDateKey],'Date'[DateKey]))
チェック マークを選択してコミットします。
レポートの構築
データをモデル化したので、次はレポートを作成します。 [レポート ビュー] に移動します。 右側にある [フィールド] ウィンドウに、作成したデータ モデルのフィールドが表示されます。
一度に 1 つずつビジュアルを作成して、最終的なレポートを完成させましょう。
ビジュアル 1: タイトルの追加
[挿入] リボンで、 [テキスト ボックス] を選択します。 「Executive Summary – Sales Report」 (エグゼクティブ サマリ - 売上高レポート) と入力します。
入力したテキストを選択します。 フォント サイズを [20] と [太字] に設定します。
[テキスト ボックスの書式設定] ウィンドウの [効果] で、[バックグラウンド] を [オフ] に切り替えます。
1 行に収まるようにボックスのサイズを変更します。
ビジュアル 2: 日付別の売上高
次に、売上高が最も多かった月と年がわかるように折れ線グラフを作成します。
[フィールド] ウィンドウで、 [Sales Amount] フィールドを [Sales] テーブルからレポート キャンバスの空白領域にドラッグします。 Power BI では、既定により、縦棒が 1 つ (Sales Amount) ある縦棒グラフが表示されます。
[Month] (月) を [Date] テーブルの [Fiscal] (会計) 階層からドラッグし、縦棒グラフにドロップします。
[視覚化] ウィンドウの [フィールド] セクションで、X 軸ボックスの [Fiscal Year] と [Fiscal Quarter] フィールドを削除します。
[視覚化] ウィンドウで、視覚化の種類を [面グラフ] に変更します。
上記の追加の手順で DAX メジャーを追加した場合、それを Y 軸にも追加します。
[形式] ウィンドウを開き、[線] セクションの [色] で Sales Amount by Due Date の色を赤などのより対照的な色に変更します。
ご覧のとおり、Sales Amount by Due Date は、Sales Amount をわずかに下回っています。 これは、DueDateKey を使用する Sales テーブルと Date テーブルの間のリレーションシップを使用していることを証明しています。
視覚化 3: Order Quantity by Reseller Country-Region
次に、マップを作成して、Reseller の Order Quantity Amount が最も多い Country または Region を表示します。
[フィールド] ウィンドウで、 [Reseller] (リセラー) テーブルの [Country-Region] (国/地域) フィールドをレポート キャンバスの空白領域にドラッグします。 Power BI によってマップが作成されます。
[Order Quantity] (注文数量) フィールドを [Sales] テーブルからドラッグして、マップにドロップします。 [Country-Region] が [場所] にも入力され、[Order Quantity] が [バブル サイズ] にも入力されていることをご確認ください。
ビジュアル 4: 製品カテゴリおよびリセラーの業種別の売上高
次に、どの業種のリセラーによってどの製品が販売されているかを調査するための縦棒グラフを作成します。
作成した 2 つのグラフをドラッグして、キャンバスの上半分に横に並べて表示します。 キャンバスの左側に少しスペースを取っておきます。
レポート キャンバスの下半分の空白領域を選択します。
[フィールド] ウィンドウで、 [Sales] から [Sales Amount] 、 [Product] (製品) から [Product Category] (製品カテゴリ) 、 [Reseller] から [Business Type] (業種) をそれぞれ選択します。
Power BI によって、集合縦棒グラフが自動的に作成されます。 視覚化を [マトリックス] に変更します。
[列] から [ビジネスタイプ] フィールドをドラッグし、[行] の [カテゴリ] の下に配置します。
マトリックスを選択したまま、[フィルター] ウィンドウの [業種] で [すべて選択] をオンにして、 [[該当なし]] ボックスをオフにします。
上の 2 つのグラフの下にあるスペースを埋めるのに十分な幅になるように、マトリックスをドラッグします。
マトリックスの書式ペインで、conditional を検索します。 [セル要素] セクションで、[データ バー] をオンにします。 [fx] オプションを選択し、正のバーに明るい色を設定します。 [OK] を選択します。
マトリックスをドラッグして Sales Amount 列の幅を広げ、領域全体を覆うようにします。
全体的に Bikes (自転車) の売上高が多く、Value Added Resellers (付加価値リセラー) が最も多く売り上げており、僅差で Warehouses (量販店) が続いていることが示されています。 Components (部品) の売上高については、Warehouses の方が Value Added Resellers よりも多くなっています。
ビジュアル 5: 会計カレンダー スライサー
スライサーは、レポート ページのビジュアルを特定の選択範囲にフィルター処理するための重要なツールです。 この場合、各月、四半期、年の業績を絞り込むためのスライサーを作成できます。
[フィールド] ウィンドウで、 [Date] テーブルから [Fiscal] 階層を選択し、キャンバスの左側にある空白領域にドラッグします。
[視覚化] ウィンドウで、 [スライサー] を選択します。
[視覚化] ウィンドウの [フィールド] セクションで、 [Quarter] と [Date] フィールドを削除して、 [Year] と [Month] のみを残します。
以上で、上司が特定の月のデータのみを表示するように要求した場合、スライサーを使用して、年を切り替えたり、各年の特定の月に切り替えたりすることができます。
追加の手順: レポートを書式設定する
このレポートに対して何らかの淡色の書式設定を行って洗練さを高める必要がある場合、以下に簡単な手順をいくつか示します。
テーマ
[表示] リボンで、 [テーマ] を選択し、テーマを [エグゼクティブ] に変更します。
ビジュアルを整理する
[視覚化] ウィンドウの [書式] タブで、次の変更を行います。
ヒント
変更する設定を簡単に見つけるには、[書式] ペインの [検索] ボックスに入力します。
ビジュアル 2、日付別の売上高
[ビジュアル 2、日付別の売上高] を選択します。
[タイトル] セクションで、DAX メジャーを追加しなかった場合は、[テキスト] を "Sales Amount by Order Date" (注文日別の売上高) に変更します。
DAX メジャーを追加した場合は、[テキスト] を "Sales Amount by Order Date / Due Date" (注文日/期限別の売上高) に変更します。
軸と凡例にはタイトルを含めることもできますので、必ずビジュアル自体の [タイトル] セクションを取得してください。
[テキスト サイズ] を 16 pt に設定します。
[全般] タブで、[影] を [オン] に切り替えます。
視覚化 3、Order Quantity by Reseller Country-Region
- 視覚化 3、Order Quantity by Reseller Country-Region を選択します。
- [マップ設定] セクションで、[スタイル] を [グレースケール] に変更します。
- [全般] タブの [タイトル] セクションで、[テキスト] を "Order Quantity by Reseller Country-Region" に変更します。
- [テキスト サイズ] を 16 pt に設定します。
- また、[全般] タブで、[影] を [オン] に切り替えます。
ビジュアル 4、製品カテゴリおよびリセラーの業種別の売上高
- [ビジュアル 4、製品カテゴリおよびリセラーの業種別の売上高] を選択します。
- [全般] タブの [タイトル]セクションで、[テキスト] を "Sales Amount by Product Category and Reseller Business Type" (製品カテゴリおよびリセラーの業種別の売上高) に変更します。
- [テキスト サイズ] を 16 pt に設定します。
- また、[全般] タブで、[影] を [オン] に切り替えます。
ビジュアル 5、会計カレンダー スライサー
- [ビジュアル 5、会計カレンダー スライサー] を選択します。
- [スライサー設定] セクションの [選択] セクションで、[[すべて選択] オプションを表示する] を [オン] に切り替えます。
- [スライサー ヘッダー] セクションで、 [テキスト サイズ] を [16 pt] に設定します。
タイトルの背景図形を追加する
[挿入] リボンで、 [図形]>[四角形] を選択します。
それをページの一番上に配置し、ページの幅とタイトルの高さに合わせて引き伸ばします。
[スタイル] ペインの [罫線] セクションで、[透明度] を [100%] に変更します。
[塗りつぶし] セクションで、 [塗りつぶしの色] を [テーマの色 5 #6B91C9] (青) に変更します。
[書式] リボンで、[背面へ移動]>[最背面へ移動] を選択します。
ビジュアル 1 のテキスト、タイトルを選択し、 [フォントの色] を [白] に変更します。
完成したレポート
スライサーで [FY2019] を選択します。
手短に言えば、このレポートは、上司が最も関心のある質問に答えることができます。
2019 年 2 月に売上が最も多かったのは何日か? 2 月 25 日、売上高 253,915.47 ドル。
会社が最も成功を収めたのは、どの国/地域か? 米国、注文数量 132,748。
会社が投資を継続する必要があるのは、どの製品カテゴリとどの業種のリセラーか? 同社は引き続きカテゴリ Bike と業種 Value Added Reseller および Warehouse に投資する必要があります。
レポートの保存
- [ファイル] メニューで、 [保存] を選択します。
Power BI サービスに発行して共有する
レポートを上司や仕事仲間と共有するには、Power BI サービスに発行します。 Power BI アカウントを持っている仕事仲間と共有する場合、仕事仲間はレポートを操作できますが、変更を保存することはできません。
Power BI Desktop で、 [ホーム] リボンの [発行] を選択します。
Power BI サービスにサインインする必要がある場合があります。 まだアカウントをお持ちではない場合は、無料試用版にサインアップしてください。
Power BI サービスで、[マイ ワークスペース] などの宛先 >[選択] の順に選択します。
[Power BI で 'ご利用のファイル名' を開く] を選択します。 完成したレポートがブラウザーに表示されます。
レポートの上部にある [共有] を選択して、レポートを他のユーザーと共有します。
関連するコンテンツ
- 完成した Power BI .pbix ファイルをダウンロードする
- Power BI Desktop での DAX とデータ モデリングの詳細については、こちらを参照してください
他にわからないことがある場合は、 Power BI コミュニティを利用してください。