Power BI Disktop初級編、AdventureWorks Salesのデータを利用した魅力的なレポートの作成(前編 データの整理・加工)

Microsoft
この記事は約9分で読めます。

はじめに

 Microsoftチュートリアルに沿って学習する第1回目としてのPower BI Desktopの使い方、ダウンロード、インストール、個人利用などについても解説では、主に次のことを学びました。

  • Power BI Desktopとは?
  • Power BIの有料版
  • Power BI Desktopのダウンロードとインストール
  • Power BI Desktopの使い方
    • Power BI Desktopの起動
    • サンプルデータの読み込みとデータ加工
    • DAX で式を記述
    • レポートの作成
      • タイトルの挿入
      • 日付別利益
      • 国別の利益
      • 製品およびセグメント別の売上
      • 年のスライサー
      • レポートを書式設定による最終レポート

 今日のPower BI Destopでは、Power BI Disktop初級編、AdventureWorks Salesのデータを利用した魅力的なレポートの作成(データの整理・加工)について紹介します。

  • AdventureWorks Salesのデータの読み込み
  • データのモデル化
  • リレーションシップの作成
  • キー列の非表示設定
  • 階層の作成
  • DAXでメジャーの作成
 OS、機種などで説明の仕方が変わってくることがありますので、私の使用しているパソコン環境について載せておきます。

パソコンOS : Windows10 Pro
Windowsバージョン : 21H1

AdventureWorks Salesのデータの読み込み

 先ず、AdventureWorks SalesのExcelブックをダウンロードするために、下記のURLをクリックします。

https://github.com/microsoft/powerbi-desktop-samples/blob/main/AdventureWorks%20Sales%20Sample/AdventureWorks%20Sales.xlsx

 ダウンロードサイトに飛びますので、「ダウンロード」をクリックします。

 あなたのパソコンのダウンロードホルダーに「AdventureWorks Sales.xlsx」がダウンロードされます。

 このファイルを、あなたの作業ホルダーに移動します。

 Power BI Desktopを起動すると、一緒に立ち上がるPower BI Desktopの新機能などが書かれた画面が表示されるようであれば、下のある「スタートアップ時にこの画面を表示する」のチェックを外し、右上の「☓」をクリックします。

Power BI Desktopのホーム画面で、上部メニューの「Excelブック」をクリックすると、ファイル選択画面が表示されるので、先ほどダウンロードした「AdventureWorks Sales.xlsx」ファイルを選択して、「開く」をクリックします。

 ナビゲータウインドウが表示され、左の「AdventureWorks Sales.xlsx」の下に14個の表がありますが、上から7個の表にの右横にチェックを入れ、「データ変換」をクリックします。

 なお、表を選択すると(表示オプションで「データプレビューを有効にします」にチェックが入っていれば)右側の画面に選択した表のデータがプレビューできます。

 無題のPower Queryエディターが立ち上がり、左側に7つのクエリーがあり、真ん中が表データ、右側がクエリの設定画面が表示されます。

 Power Queryの使い方については、次の記事を参照して下さい。

 また、 各クエリーをクリックして表示される表データで不要な行やデータ型が次の表にある形になっているかを確認し、なっていなければデータ型の変更をして下さい。

クエリデータ型
CustomerCustomerKey整数
DateDateKey整数
DateDate
MonthKey整数
ProductProductKey整数
Standard Cost10 進数
List Price10 進数
ResellerResellerKey整数
SalesSalesOrderLineKey整数
ResellerKey整数
CustomerKey整数
ProductKey整数
OrderDateKey整数
DueDateKey整数
ShipDateKey整数
SalesTerritoryKey整数
Order Quantity整数
Unit Price10 進数
Extended Amount10 進数
Unit Price Discount Pctパーセント
Product Standard Cost10 進数
Total Product Cost10 進数
Sales Amount10 進数
SalesTerritorySalesTerritoryKey整数
SalesOrderSalesOrderLineKey整数

 上述のデータ型が合っていることを確認した後、または合っていなければ、データ型を変更した後、上部左にある「閉じて適用」をクリックします。

データのモデル化

 Power BI Desktopのホーム画面の左にある「モデル」をクリックすると、クエリで取り込んだ表データのオブジェクトを見ることができるので、適当に動かしてあなた自身が見やすいように配置して下さい。

 ここで、「Date」のオブジェクトのみがリレーションシップが形成されていないことがわかります。

  次のようなリレーションシップを作成します。

  • 「Date」の「DateKey」 ⇔ 「Sales」の「OrderDateKey」
  • 「Date」の「DateKey」 ⇔ 「Sales」の「 DueDateKey」
  • 「Date」の「DateKey」 ⇔ 「Sales」の「 ShipDateKey」

「Sales」オブジェクトと「Date」オブジェクトの間に3本の線が繋がり、実線がアクティブであり、破線が非アクティブであることを示します。

 

キー列の非表示設定

 これで、7つの表の間にリレーションシップが作成されました。

 レポートを作成する際にキー列は通常は使わないので、レポート作成する際に邪魔にならないように非表示設定をします。

 非表示を設定するキー列は次の表の通りにします。

テーブル非表示するキー列
CustomerCustomerKey
DateDateKey
MonthKey
ProductProductKey
ResellerResellerKey
SalesCustomerKey
DueDateKey
OrderDateKey
ProductKey
ResellerKey
SalesOrderLineKey
SalesTerritoryKey
ShipDateKey
SalesOrderSalesOrderLineKey
SalesTerritorySalesTerritoryKey

 キー列の右にある目玉のようなマークをクリックすると斜線が引かれ非表示となります。

階層の作成

 データの階層を作成することにより、レポート時に更に便利になります。

 ここで作成する階層は次の表のとおりです。

テーブル階層名階層
CustomerGeographyCountry-Region
State-Province
City
Postal Code
Customer
DateFiscalYear (Fiscal Year)
Quarter (Fiscal Quarter)
Month
Date
ProductProductsCategory
Subcategory
Model
Product
ResellerGeographyCountry-Region
State-Province
City
Postal Code
Reseller
SalesOrderSales OrdersSales Order
Sales Order Line
SalesTerritorySales TerritoriesGroup
Country
Region

 階層の作り方は、例えば、「Customer」を例に取ると、モデルの右にあるフィールドの「> Customer」の「>」をクリックすると「Customer」が展開し、各項目が表示されますので、最も元となる階層の「Country-Region」の上で右クリックして、「階層の作成」をクリックし、右のプロパティ画面で階層の名前を上述の表から記入し、下の「列を選択してレベルを追加」をクリックして、階層に入れる項目を上から順に指定して入れ込み、最後に「レベルの適用を変更する」をクリックすることにより、階層が作成されます。

  他の階層についても、上図と同様に行います。

 次に、テーブルの名前を変更します。

  • SalesTerritory ⇒ Sales Territory
  • SalesOrder ⇒ Sales Order

 名前の変更は、モデルの右にあるフィールドの名前を変更するテーブルを右クリックして出るメニューで「名前変更」をクリックして、名前を新しい名前にすれば変更ができます。

DAXでメジャーの作成

 ここでは、USERELATIONSHIP 関数を使って、「Date」と「Sales」に作成した3つのリレーションシップの内「Date」の「DateKey」と「Sales」の「 DueDateKey」間のリレーションシップをアクティブにして、販売注文の期限で合計売上高を計算します。

 その計算式は、次のとおりです。

Sales Amount by Due Date = CALCULATE(SUM(Sales[Sales Amount]), USERELATIONSHIP(Sales[DueDateKey],'Date'[DateKey]))

 

 それでは、そのやり方を紹介します。

 先ず、左のメニューの「データ」をクリックし、右のフィールドの表の「Sales」を選択して、上部メニューの「新しいメジャー」をクリックすると、上部の数式入力部分が表示されますので、その中に上述のDAX式を記入し、「✓」をクリックします。

 一応、これでデータの整理・加工は終了したので、あとはレポートの作成のみです。

 レポートの作成については、次回に紹介します。

おわりに

 如何だったでしょうか?

 
 AdventureWorks Salesのデータの読み込み、データのモデル化、キー列の非表示設定、階層の作成、DAXでメジャーの作成などについて解説してきました。

 次回は、この整理・加工したデータを用いて可視化してレポートにしまのでお楽しみにお待ち下さい。

 この記事が少しでもあなたにとって役に立てればこれほど嬉しいことはありません。

以上です。

 

コメント