Power BI 用 Copilot を使用してデータをモデリングする

完了

データをインサイトに変換するには、適切なデータの準備が必要です。 新しいセマンティック モデルの設計を始める前に、データのクリーニング、変換、形成を行います。

テーブルをリレーションシップで紐付ける

次にテーブルを紐付けるリレーションシップを作成します。 リレーションシップを作成しておくことで、後の開発プロセスでレポート ビジュアルに表示するデータのフィルター処理や要約が可能になります。 まずは、リレーションシップ自動検出機能を使用し、それから Copilot で新しいセマンティック モデルを作成して、他にリレーションシップが必要かどうかを判断します。

次の画像には、リレーションシップによって複数のディメンション テーブルに紐付けられている単一のファクト テーブルが表示されています。 Power BI レポートは、セマンティック モデルがスター スキーマやスノーフレーク スキーマで設計されている場合に最も便利です。

ディメンション テーブルに紐付けられたファクト テーブルで構成され、スター スキーマで設計されているセマンティック モデルのスクリーン ショット。

クイック メジャーを作成する

テーブルの紐付けの後に、既存のデータではビジネス要件を満たすことができないことが分かる場合があります。 そのような場合は、メジャーを作成したり、DAX (Data Analysis Expressions) を使用して新しいデータ計算項目を作成したりすることで、ビジネス要件を満たすことができます。 DAX は万能で強力な機能である一方で、Power BI で使い始めるのは容易ではありません。 DAX は、関数型言語として記述します。 DAX のような関数型言語では、基本的に関数を使用して機械的な計算を行います。そのため、DAX は一つひとつ設定を決めるセットベース言語と比較すると扱いやすくありません。

Power BI では、クイック メジャーを作成することで、簡単に計算対象となるデータ フィールドを追加できます。

クイック メジャー ウィンドウのスクリーンショット。集計やフィルターなどの事前に用意されているオプションが表示されています。

Copilot による提案

クイック メジャーは優れたソリューションです。しかし、使い始めの場合はさらにシンプルなオプションが必要になります。 Power BI 用 Copilot が利用可能な場合は、クイック メジャーで Copilot による提案 オプションを使用することもできます。 Copilot は Q&A 形式で使用する機能であり、作成する計算項目を日常的に使う言葉で説明できます。

「すべての製品の合計売上」と入力され、計算項目が提案された Copilot による提案のスクリーンショット。

total sales by all products などのたった一つのプロンプトと、事前に準備したセマンティック モデルを選択するだけで、新たなデータ インサイトの作成を目的として追加するメジャーの候補をすばやく表示できます。

製品別の平均合計売上と製品別の合計売上を含む、自動作成されたメジャーのスクリーンショット。

クイック メジャーと Copilot を使用することにより、最小限の労力でレポートに求められる要件を満たしながら、メジャーを作成したり DAX の使い方を覚えたりできます。

DAX を使用してクエリを実行する

Power BI Desktop には、レポートテーブルモデルDAX クエリ の 4 つのビューがあります。 DAX クエリ ビューでは、リボンにある Copilot を選択すると、日常的に使う言葉で説明して必要なクエリを作成できます。

DAX クエリ ビューの Copilot 機能に「total sales for all salespeople individually for all items in the accessories category」というプロンプトを入力したとしましょう。

このプロンプトの目的は、アクセサリーのカテゴリにおける各営業担当者の合計売上を計算することです。 AdventureWorks では、内部で複数の製品が含まれるカテゴリを複数管理しています。 アクセサリーの売上が低下しているため、アクセサリーの販売に関する貴重な情報を共有してもらえるように、成績の良い営業担当者を把握する必要があります。

前のプロンプトを計算する DAX クエリのスクリーンショット。

// DAX query generated by Fabric Copilot with "total sales for all salespeople individually for all items in the accessories category"
// Total sales for each salesperson for items in the accessories category
EVALUATE
  SUMMARIZECOLUMNS(
    'Salesperson'[Salesperson],
    FILTER('Product', 'Product'[Category] == "Accessories"),
    "Total Sales", [Total Sales]
  )

次の表には、Copilot で生成した DAX クエリの結果がサンプルとして表示されています。

営業担当者 合計売上
Stephen Jiang 8374.76
Michael Blythe 38682.84
Linda Mitchell 66916.05

DAX クエリからメジャーを作成する

DAX クエリ ビューの Copilot では、データを検索し、どのようなメジャーを作成すればいいのかを判断した後で、変更を加えてモデルを更新する を選択することで、必要なメジャーを作成できます。 次のクエリは、「suggest measures」というプロンプトを使って生成されたものです。

// DAX query generated by Fabric Copilot with "Suggest new measures in a DAX query for further analysis and try them out with one or more suitable columns"
DEFINE
  // New measure to calculate the average profit per product sold
  MEASURE 'Sales'[Avg Profit per Product] = DIVIDE([Profit], [Unique Products Sold])
  // New measure to calculate the average sales per reseller
  MEASURE 'Sales'[Avg Sales per Reseller] = DIVIDE([Total Sales], [Unique Resellers])
  // New measure to calculate the average quantity per order
  MEASURE 'Sales'[Avg Quantity per Order] = DIVIDE([Total Quantity], [Orders])
  // New measure to calculate the average sales per order
  MEASURE 'Sales'[Avg Sales per Order] = DIVIDE([Total Sales], [Orders])

// Evaluate the new measures
EVALUATE
  ROW(
    "Avg Profit per Product", [Avg Profit per Product],
    "Avg Sales per Reseller", [Avg Sales per Reseller],
    "Avg Quantity per Order", [Avg Quantity per Order],
    "Avg Sales per Order", [Avg Sales per Order]
  )

このクエリを使用すると、次のようなテーブルが作成されます。

製品ごとの平均利益 リセラーごとの平均売上 受注ごとの平均数量 受注ごとの平均売上
2992.4987 122703.4339 56.44745575221239 21445.9541

次のスクリーンショットには、次の 3 つの手順を実行した結果が表示されています。

  • suggest measures というプロンプトを入力する。
  • 結果が返ってきた後に クエリを維持する を選択する。
  • クエリを 実行 する。

レポート開発者は、変更を加えてモデルを更新し、自身のプロジェクトに合わせてメジャーを作成できます。

前に入力した「suggest measures」というプロンプトと、提案されたメジャーと処理結果のテーブルのスクリーンショット。

概要

ユーザーは、Copilot を使用することで、データの検索とセマンティック モデルの設計をより効率的に行えます。これにより、データを分析するスキルを高め、レポート開発者としての能力を強化できます。