次の方法で共有


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

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

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

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

Note

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

前提条件

  • アクセス レベル: Basic 以上のプロジェクトのメンバーである必要があります。
  • Permission: 既定では、プロジェクト メンバーは Analytics にクエリを実行してビューを作成する権限を持ちます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。

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

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

  1. Analytics ビューを編集 します。
  2. [ Field タブで、 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. [ ホーム ] タブ [新しいソース] を選択して 別の空のクエリを追加し、 Areas に名前を変更します。

  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. [Home] タブで[新しいソースを選択して別の空のクエリを追加し、名前を 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. 次に、 Refresh を選択して AreaSK をビューに追加します。

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

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

  1. Relationships ビューを開きます。

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

  2. Home タブで、リレーションシップの管理を開きます。

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

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

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

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

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

  5. AreaToTeamTeams の間に、双方向の Many to One リレーションシップを作成します。

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

  6. Report ビューに戻り、TeamName および TeamSK フィールドのコンテキスト メニューを開き、Hide オプションを選択します。

    領域を非表示にする

  7. View および Team テーブルで対応する SK を非表示にします。

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

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

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

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

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