Power BI Desktop では、あらゆる種類のデータ ソースに接続でき、さまざまに結合したり整形したりすることができます。これにより、興味深く説得力のあるデータ分析と視覚化を簡単に実現できます。 このチュートリアルでは、2 つのデータ ソースのデータを結合する方法について取り上げます。

製品情報を入れるデータベースと売上情報を入れるデータベースが異なるなど、データが複数のデータ ソースにまたがることは珍しくありません。 このドキュメントで習得する手法では、Excel ブックと OData フィードを使用しますが、これらの手法は他のデータ ソース (SQL Server クエリ、CSV ファイル、Power BI Desktop の他のデータ ソースなど) にも適用できます。

このチュートリアルでは、Excel (製品情報を含む) および OData フィード (注文データを含む) からデータをインポートします。 変換と集約の手順を実行してから&2; つのソースのデータを結合して、対話式の視覚化が含まれている 製品と年度ごとの売上合計 レポートを生成します。

最終的なレポートは次のようになります。

このチュートリアルの手順を実行するには、製品のブックをダウンロード**する必要があります。ここをクリックすると、Products.xlsx** をダウンロードできます。

[名前を付けて保存] ダイアログ ボックスで、ファイルに Products.xlsxという名前を指定します。

タスク 1: Excel ブックから製品データを取得する

このタスクでは、製品を Products.xlsx ファイルから Power BI Desktop にインポートします。

手順 1: Excel ブックに接続する

  1. Power BI Desktop を起動します。

  2. [ホーム] リボンで [データの取得]を選択します。 Excel は、 最も一般的な データ接続の&1; つであるため、 [データの取り込み] メニューから直接選択できます。

  3. [データの取り込み] ボタンを直接選択する場合は、[ファイル] > [Excel] を選択し、[接続] を選択する方法もあります。

  4. [ファイルを開く] ダイアログ ボックスで Products.xlsx ファイルを選択します。

  5. [ナビゲーター] ウィンドウで [製品] テーブルを選択してから、 [編集]を選択します。

手順 2: 必要な列のみを表示するため、他の列を削除する

この手順では、 ProductIDProductNameUnitsInStockQuantityPerUnit以外のすべての列を削除します。 Power BI Desktop では多くの場合、同じタスクを複数の方法で実行できます。 たとえば、リボンのボタンの多くは、列またはセルの右クリック メニューからも実行できます。

Power BI Desktop にはクエリ エディターが組み込まれており、このエディターでデータ接続を整形したり変換したりすることができます。 [ナビゲーター] から [編集]を選択すると、クエリ エディターが自動的に開きます。 また、Power BI Desktop の [ホーム] リボンで [クエリを編集] を選択することによって、クエリ エディターを開くこともできます。 以下の手順は、クエリ エディターで実行します。

  1. クエリ エディターで、 ProductIDProductNameQuantityPerUnit、および UnitsInStock 列 を選択します (1 つ以上の列を選択するには Ctrl キーを押しながらクリック し、隣り合う複数の列を選択するには Shift キーを押しながらクリック します)。

  2. リボンで [列の削除]>[他の列の削除] を選択するか、列ヘッダーを右クリックして [他の列の削除] をクリックします。

手順 3: UnitsInStock 列のデータ型を変更する

クエリ エディターは、データに接続されると、各フィールドを再確認し、最適なデータ型を判別します。 Excel ブックの場合は、製品在庫は常に整数であるため、この手順で UnitsInStock 列のデータ型が整数であることをユーザーが確認します。

  1. UnitsInStock 列を選択します。

  2. [ホーム] リボンの [データ型] ドロップダウン ボタンを選択します。

  3. まだ整数になっていない場合は、ドロップ ダウンから [整数] データ型を選択します ( [データ型] ボタンにも現在選択されているデータ型が表示されます)。

作成される Power BI Desktop の手順

クエリ エディターでクエリ操作を実行すると、 [クエリの設定] ウィンドウの [適用される手順] 一覧にクエリの手順が作成されて表示されます。 各クエリ ステップには、"M" 言語とも呼ばれる対応する式があります。 “M” 数式言語について詳しくは、「Power BI の数式について」をご覧ください。

タスク クエリの手順
Excel ブックに接続する Source Source{[Name="Products"]}[Data]
最初の行をテーブルの列ヘッダーに昇格させる FirstRowAsHeader Table.PromoteHeaders
(製品)
必要な列のみを表示するため、他の列を削除する RemovedOtherColumns Table.SelectColumns
(FirstRowAsHeader,{"ProductID", "ProductName", "QuantityPerUnit", "UnitsInStock"})
データ型を変更する Changed Type Table.TransformColumnTypes(#"Removed Other Columns",{{"UnitsInStock", Int64.Type}})

タスク 2: OData フィードから注文データをインポートする

このタスクでは、注文データを取り込みます。 この手順では、販売システムに接続します。 下記の URL にあるサンプルの Northwind OData フィードからデータを Power BI Desktop にインポートし、下記の手順でコピーし (貼り付け) ます。http://services.odata.org/V3/Northwind/Northwind.svc/

手順 1: OData フィードに接続する

  1. クエリ エディターの [ホーム] リボンで、[データの取得] を選択します。

  2. [OData フィード] データ ソースを参照します。

  3. [OData フィード] ダイアログ ボックスで、Northwind OData フィードの [URL] を入力します。

  4. [OK]を選択します。

  5. [ナビゲーター] ウィンドウで [注文] テーブルを選択してから、 [編集]を選択します。

注: チェック ボックスを選択せずにテーブル名をクリックすると、プレビューを表示できます。

手順 2: Order_Details テーブルを展開する

Orders テーブルには、Details テーブルへの参照が含まれます。このテーブルには、各注文に含まれている個別の製品が含まれています。 複数のテーブルが含まれるデータ ソース (リレーショナル データベースなど) に接続する場合は、これらの参照を使用してクエリを作成できます。

この手順では、Orders テーブルと関連がある Order_Details テーブルを展開し、Order_DetailsProductIDUnitPriceQuantity の各列を Orders テーブルに結合します。 これらのテーブル内のデータを次に示します。

[展開] 操作によって、関連テーブルの列が、サブジェクト テーブルに結合されます。 クエリを実行すると、関連テーブルの行 (Order_Details) がサブジェクト テーブル (Orders) の行に結合されます。

Order_Details テーブルを展開すると、入れ子になったテーブルまたは関連テーブルの各行ごとに、3 つの新しい列と追加行が Orders テーブルに加えられます。

  1. クエリ ビューで、Order_Details 列までスクロールします。
  2. Order_Details 列で、[展開] アイコン ( ) を選択します。
  3. [展開] ドロップダウンで以下の操作を行います。
    1. すべての列をオフにするため、 (すべての列を選択) を選択します。
    2. ProductIDUnitPriceQuantityを選択します。
    3. [OK]をクリックします。

手順 3: 必要な列のみを表示するため、他の列を削除する

この手順では、OrderDate、ShipCityShipCountryOrder_Details.ProductIDOrder_Details.UnitPriceOrder_Details.Quantity 列以外のすべての列を削除します。 前のタスクでは、 [他の列の削除]を使用しました。 このタスクでは、選択した列を削除します。

  1. クエリ ビューで、すべての列を選択するため、a. と b. を実行します。
    1. 最初の列 (OrderID) をクリックします。
    2. Shift キーを押しながら最後の列 (Shipper) をクリックします。
    3. すべての列が選択されたので、Ctrl キーを押しながら、OrderDateShipCityShipCountryOrder_Details.ProductIDOrder_Details.UnitPriceOrder_Details.Quantity をクリックして選択解除します。
  2. これで、削除する必要がある列のみが選択されたため、選択した列ヘッダーを右クリックし、 [列の削除]をクリックします。

手順 4: Order_Details の各行で行の合計を計算する

Power BI Desktop を使用すると、インポートする列に基づいて計算を作成して、接続対象データを強化できます。 この手順では、[カスタム列] を作成し、Order_Details の各行の行合計を計算します。

Order_Details 行ごとの行合計を計算する

  1. [列の追加] リボン タブで、 [カスタム列の 追加] をクリックします。

  2. [カスタム列の追加] ダイアログ ボックスの [カスタム列の数式] テキスト ボックスに、[Order_Details.UnitPrice] * [Order_Details.Quantity] と入力します。

  3. [新しい列名] テキスト ボックスに、 LineTotalと入力します。

  4. [OK]をクリックします。

手順 5: LineTotal フィールドのデータ型を設定する

  1. LineTotal 列を右クリックします。

  2. [型の変更] を選択した後、**[10 進数] を選択します。

手順 6: クエリ内の列の名前の変更と順序の変更

この手順では、モデルを処理しやすいものにする最終段階として、レポートの作成時に、最終的な列の名前と順序を変更します。

  1. クエリ エディターで、 LineTotal 列を、左側の ShipCountryの後にドラッグします。

  2. Order_Details. プレフィックスを Order_Details.ProductIDOrder_Details.UnitPriceOrder_Details.Quantity の各列から削除します。削除するには、それぞれの列ヘッダーをダブルクリックした後、列名からテキストを削除します。

作成される Power BI Desktop の手順

クエリ エディターでクエリ操作を実行すると、 [クエリの設定] ウィンドウの [適用される手順] 一覧にクエリの手順が作成されて表示されます。 各クエリ ステップには、"M" 言語とも呼ばれる対応する Power Query 式があります。 この数式言語について詳しくは、「Power BI の式について」をご覧ください。

タスク クエリの手順
OData フィードに接続する Source Source{[Name="Orders"]}[Data]
Order_Details テーブルを展開する Order_Details を展開する Table.ExpandTableColumn
(Orders, "Order_Details", {"ProductID", "UnitPrice", "Quantity"}, {"Order_Details.ProductID", "Order_Details.UnitPrice", "Order_Details.Quantity"})
必要な列のみを表示するため、他の列を削除する RemovedColumns Table.RemoveColumns
(#"Expand Order_Details",{"OrderID", "CustomerID", "EmployeeID", "RequiredDate", "ShippedDate", "ShipVia", "Freight", "ShipName", "ShipAddress", "ShipCity", "ShipRegion", "ShipPostalCode", "ShipCountry", "Customer", "Employee", "Shipper"})
Order_Details 行ごとの行合計を計算する InsertedColumn Table.AddColumn
(RemovedColumns, "Custom", each [Order_Details.UnitPrice] * [Order_Details.Quantity])

タスク 3: Products クエリと Total Sales クエリを結合する

Power BI Desktop では、レポート作成のためにクエリを結合する必要はありません。 代わりに、データセット間に リレーションシップ を作成できます。 データセットに共通する任意の列で、これらのリレーションシップを作成できます。 詳しくは、「リレーションシップの作成と管理」をご覧ください。

このチュートリアルでは、共通の 'ProductID' フィールドを共有する注文データと製品データを使用します。そのため、Power BI Desktop で使用するモデルにおいてそれらの間にリレーションシップを持たせる必要があります。 これには単に、Power BI Desktop で各テーブルの列を関連付ける (つまり、列が同じ値を持つ) ように指定します。 Power BI Desktop がリレーションシップの方向とカーディナリティを自動的に判別します。 リレーションシップ自体を自動的に検出する場合もあります。

このタスクでは、Power BI Desktop で 製品 クエリと 売上合計 クエリの間にリレーションシップが確立されていることを確認します。

手順 1: 製品と売上合計の間のリレーションシップを確認する

  1. 最初に、クエリ エディターで作成したモデルを Power BI Desktop に読み込む必要があります。 クエリ エディターの [ホーム] リボンで、[閉じて読み込む] を選択します。

  2. Power BI Desktop が&2; つのクエリからデータを読み込みます。

  3. データが読み込まれたら、 [ホーム] リボンの [リレーションシップの管理] ボタンを選択します。

  4. [新規...] ボタンを 選択します。

  5. リレーションシップを作成しようとしましたが、既に&1; つ存在していることがわかりました。 [リレーションシップの作成] ダイアログで (列に影が付けられて) 示されているように、各クエリ内の ProductsID フィールドには既にリレーションシップが確立されています。

  6. [キャンセル]を選択してから、Power BI Desktop の リレーションシップ ビューを選択します。

  7. 次のように表示され、クエリ間にリレーションシップがあることを確認できます。

  8. クエリにつながっている線の矢印をダブルクリックすると、 [リレーションシップの編集] ダイアログが表示されます。

  9. 変更を加える必要はないため、 [キャンセル] を選択して、 [リレーションシップの編集] ダイアログを閉じます。

タスク 4: データをビジュアル化する

Power BI Desktop を使用すると、データから洞察を得るためにさまざまな視覚エフェクトを作成できます。 複数のページで構成されるレポートを作成し、各ページに複数のビジュアルを含めることができます。 そうした視覚エフェクトと対話して、データの分析や把握に役立てることができます。 レポートの編集に関する詳細については、「レポートの編集」をご覧ください。

このタスクでは、既に読み込んだデータに基づいてレポートを作成します。 [フィールド] ウィンドウを使用して、視覚エフェクトを作成する列を選択します。

手順 1: 製品ごとの在庫数および年ごとの売上合計を示すグラフを作成する

[フィールド] ウィンドウ (画面の右側にあるウィンドウ) からキャンバス上の空白領域まで UnitsInStock をドラッグします。 テーブルの視覚エフェクトが作成されます。 次に、[視覚化] ウィンドウの下半分にある [軸] ボックスまで ProductName をドラッグします。 その後、視覚エフェクトの右上隅にある記号から [並べ替え] > [UnitsInStock] を選択します。

OrderDate をキャンバスの最初のグラフの下までドラッグし、さらに LineTotal を (再度 [フィールド] ウィンドウから) ビジュアル上にドラッグしてから、[折れ線グラフ] を選択します。 次の視覚エフェクトが作成されます。

次に、ShipCountry を右上にあるキャンバス上の空白部分にドラッグします。 地理的なフィールドを選択したので、自動的にマップが作成されました。 ここで、LineTotal[値] フィールドまでドラッグします。各国のマップ上の円のサイズが、その国に出荷された注文の LineTotal に合わせて調整されます。

手順 2: レポートのビジュアルと対話を行い、さらに分析する

Power BI Desktop を使用すると、相互に強調表示したり、フィルター処理したりすることによってビジュアルと対話して、さらに傾向を明らかにすることができます。 詳細については、「レポートにおけるフィルター処理と強調表示」をご覧ください。

  1. Canada の中心にある水色の円をクリックします。 他のビジュアルがフィルター処理され、カナダの在庫 (ShipCountry) と注文合計数 (LineTotal) だけが表示されていることに注目してください。

完成した売上分析レポート

これらすべての手順を実行すると、Products.xlsx ファイルと Northwind OData フィードのデータを結合させた売上レポートが完成します。 このレポートには、さまざまな国の売上情報の分析に役立つビジュアルが示されています。 このチュートリアルの完成した Power BI Desktop ファイルはここからダウンロードできます。

他の詳細情報については、次を参照してください。