次の方法で共有


カスタム分析ビューを使用してチームでフィルター処理された Power BI レポートを作成する

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

分析ビューでは、チームに基づいて作業項目をフィルター処理するためのフィールド条件がサポートされます。 ただし、Power BI レポートのフィルター処理をサポートするために使用できるチーム固有のフィールドはありません。 各作業項目は特定のエリア パスに関連付けられますが、エリア パスは複数のチームに関連付けることができます。 この一対多の関連付けのため、Analytics ではチーム固有のフィールドは提供されません。

ただし、この記事に記載されている手順を使用して、チームに対してフィルター処理を行うことができます。 一般的なプロセスでは、Analytics ビューと teams エンティティの間にマッピング テーブルが導入されます。

Note

同様に、Analytics ビュー内の作業項目のボード固有の列を決定する際に制限があります。 ただし、この記事で説明するガイダンスは、ビューで選択した履歴データへの依存関係のため、ボードの場所では機能しません。

前提条件

  • 分析データを表示してサービスにクエリを実行するには、 Basic アクセス以上のプロジェクトのメンバーである必要があります。 既定では、すべてのプロジェクト メンバーには、Analytics のクエリと 分析ビューの定義に対するアクセス許可が付与されます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件については、「 Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。

分析ビューに AreaSK フィールドを追加する

既定の分析ビューに含まれる既定のフィールドには、Power BI でリレーションシップ マッピングを作成するために必要なフィールドは含まれません。 次の手順を使用して、モデルにマッピング テーブルを導入し、チームでのフィルター処理をサポートするために必要なリレーションシップを構築します。

  1. 分析ビューを編集 します。
  2. [フィールド] タブで、[AreaSK] フィールドを追加します。
  3. 更新されたビューを保存します。
  4. Power BI Desktop の Analytics ビューに関連付けられている Power BI pbix ファイルを読み込みます。
  5. ビューを更新し、AreaSK フィールドが期待どおりに表示されることを確認します。

チームのテーブルを追加する

次の手順では、Power BI データ モデルに Teams エンティティを追加し、Power BI でリレーションシップを作成するために必要なマッピング テーブルを生成します。 このプロセスでは、Power Query エディターを使用して 3 つのクエリを追加する必要があります。

  1. Power BI Desktop で、ビューに関連付けられている Power BI pbix ファイルを読み込みます。

  2. [データの取得] を選択 します

  3. [空のクエリ] オプションを 選択します

    空のクエリ

  4. 詳細エディターを開きます

    詳細エディター

  5. 次のクエリ コードを追加し、Analytics ビューに合わせて組織情報とチーム名を置き換えます。

    let
        #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Teams?$select=TeamName,TeamSK&$filter=TeamName eq '{TeamName1}' or TeamName eq '{TeamName2}"),
        #"Select columns" = Table.SelectColumns(#"Get table", {"TeamName", "TeamSK"})
    in
        #"Select columns"
    
  6. クエリの名前を Teams に 変更します

    クエリ名を Teams に変更する

  7. [ホーム] タブで、[新しいソース] を選択して別の空のクエリを追加し、その名前を [領域]変更します。

  8. 詳細エディターき、次のクエリ コードを追加して、ビューに合わせて組織の情報を置き換えます。

    let
        #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Areas?$select=AreaName,AreaSK"),
        #"Select columns" = Table.SelectColumns(#"Get table", {"AreaName", "AreaSK"})
    in
        #"Select columns"
    
  9. [ホーム] タブから [新しいソース] を選択して、別の空のクエリを追加し、AreaToTeam に名前を変更します

  10. 詳細エディターき、次のクエリ コードを追加して、ビューに合わせて組織の情報を置き換えます。

    let
        #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Areas?$select=AreaSK&$expand=Teams($select=TeamSK)"),
        #"Select columns" = Table.SelectColumns(#"Get table", {"AreaSK", "Teams"}),
        #"Expand Teams" = Table.ExpandTableColumn(#"Select columns", "Teams", {"TeamSK"}, {"TeamSK"})
    in
        #"Expand Teams"
    

    重要

    3 つのクエリを追加するプロセスは、1,000 チーム以下にマップされるエリア パスでのみ機能します。

  11. [ホーム] タブで、[閉じる] & [適用] を選択します

    Power BI Desktop、Home、Close & Apply

  12. 次に、[最新の情報に更新] を選択して、AreaSK をビューに追加します。

Power BI リレーションシップ マッピングを作成する

最後の手順では、Power BI で必要なリレーションシップを作成します。

  1. リレーションシップ ビューを開きます。

    リレーションシップ ビューを開く

  2. [ホーム] タブで、リレーションシップの管理を開きます

    Power BI Desktop、ホーム、リレーションシップの管理

  3. [リレーションシップの管理] ダイアログで、次の手順を実行します。
    a. 自動的に検出された可能性のあるリレーションシップを削除します。
    b. [新規] を選択すると、ビューエリアの間に双方向の多対一リレーションシップが作成されます。 詳細については、Power BI Desktop での DirectQuery を使用した双方向のクロスフィルター処理に関するページを参照してください

    Power BI Desktop の [リレーションシップの管理] ダイアログ、[領域の表示]

  4. Areas と AreaToTeam の間に双方向の One to Many リレーションシップを作成します

    Power BI Desktop、ホーム、リレーションシップの管理、エリア、AreaToTeam マッピング

  5. AreaToTeam と Teams の間に双方向の多対一リレーションシップを作成します

    Power BI Desktop、ホーム、リレーションシップの管理、AreaToTeam、Teams マッピング

  6. レポート ビューに戻り、TeamName フィールドと TeamSK フィールドのコンテキスト メニューを開き、[非表示] オプションを選択します。

    領域を非表示にする

  7. ビュー テーブルとチーム テーブルで対応する SK を非表示にします。

チームのレポート ビューをフィルター処理する

マッピングが設定されたので、Teams基づいてレポート ビューをフィルター処理できます。 まず、チーム名に基づいてレポートにスライサーを追加します (必要に応じて空白を削除します)。

Power BI Desktop、チーム スライサー

これで、Power BI でスライサーまたはその他のサポートされているフィルター機能を使用して、レポートのすべての視覚化をフィルター処理できるようになりました。

Power BI Desktop、チームでフィルター処理された数