分析データを変換して Power BI レポートを生成する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Power BI に Analytics データをインポートしたら、レポートを作成する前に選択列データの変換が必要になる場合があります。 この記事では、次のような基本的なタスクを実行する方法について説明します。
- Area、AssignedTo、Iteration などの列を展開する
- リンクされた作業項目のクエリを実行するときに子孫列を展開する
- 選択したカテゴリの状態のカウントを生成するピボット列
- 列データ型を 10 進数から整数に変換する
- 列データの null 値を置き換える
- カスタム フィールドを作成する
- フィールドの名前を変更します。
列の展開
このクエリでは、Power BI で使用する前に展開する必要がある複数の列が返されます。 OData $expand ステートメントを使用して取り込まれたエンティティは、潜在的に複数のフィールドを持つレコードを返します。 エンティティをフィールドにフラット化するには、レコードを展開する必要があります。 このようなエンティティの例としては、 AssignedTo、 Iteration、 Areaがあります。
詳細エディターを閉じ、Power Query エディターに残っている間に、フラット化する必要があるエンティティの展開ボタンを選択します。
たとえば、 Area の展開ボタンを選択し、展開するプロパティを選択して、 OKを選択します。 ここでは、フラット化する
AreaName
とAreaPath
を選択します。AreaName
プロパティは、Node Name フィールドに似ています。Note
選択できるプロパティは、クエリで返すように要求されたプロパティによって異なります。 プロパティを指定しない場合は、すべてのプロパティを使用できます。 これらのプロパティの詳細については、 Areas、 Iterations、および Users のメタデータ参照を参照してください。
テーブルにエンティティ フィールドが含まれるようになりました。
展開が必要なエンティティを表すすべてのフィールドについて、手順 1 から 3 を繰り返します。 これらは、 Record が展開されていないときにテーブル列に表示されます。
[子孫] 列を展開する
Descendants 列には、State と TotalStoryPoints の 2 つのフィールドを含むテーブルが含まれています。 展開します。
Expand ボタンを選択し、レポートする列を選択します。
すべての列を確認し、 OKを選択します。
Descendants エンティティは、選択した列にフラット化されます。
Pivot Descendants.StateCategory 列
1Descendants.StateCategory1 列ヘッダーを選択して選択します。
Transform メニューを選択し、[ピボット列します。
[ピボット列] ダイアログの [Values] で
Descendants.TotalStoryPoints
を選択し、OK キーを押します。 Power BI では、すべての StateCategory 値の列が作成されます。
[リンク] 列を展開する
Links
列の展開ボタンを選択します。フラット化するすべてのフィールドを選択します。
Links.TargetWorkItem
列の展開ボタンを選択し、フラット化するプロパティを選択します。
Note
リンクが一対多または多対多のリレーションシップを表している場合、複数のリンクが複数の行 (リンクごとに 1 行) に展開されます。
たとえば、作業項目 #1 が作業項目の #2 および #3 にリンクされている場合、リンク レコードを展開すると、作業項目 #1 に対して 2 行が作成されます。 1 つは作業項目 #2 へのリンクを表し、もう 1 つは作業項目 #3 へのリンクを表します。
列データ型を変換する
LeadTimeDays と CycleTimeDays を整数に変換する
LeadTimeDays
とCycleTimeDays
は 10 進フィールドです。 たとえば 時間 が 10 日と 1/2 日の場合、値は 10.5 です。 ほとんどのリード/サイクル時間レポートでは、最も近い日に丸められたと見なされるため、これらのフィールドを整数に変換する必要があります。 この変換を行う場合、1 未満のすべての値が 0 に変換されます。
Power Query エディターから、リボン Transform メニューを選択します。
列ヘッダーを選択して、
LeadTimeDays
列を選択します。[データ型選択し穴番号に変更します。
CycleTimeDays
に対して繰り返します。
CompletedDateSK を日付フィールドに変更する
CompletedDateSK
列データは、YYYYMMDD
形式の Completed Date フィールドの整数レンダリングに対応します。 たとえば、2022 年 7 月 1 日の整数値は20220701。 レポートを簡単にするために、 Date フィールドに変更します。
Power Query エディターから、リボン Transform メニューを選択します。
CompletedDateSK
列ヘッダーを選択します。Data Type を選択し、Text に変更します。 [列の種類の変更]ダイアログ ボックスが表示されたら、[現在のステップ置き換え]ではなく[新しいステップの追加] を選択します。 この 2 段階のプロセスは、Power BI で適切な Date フィールドに変更する最も簡単な方法です。
次に、 Date Type もう一度選択し、 Date を選択します。 [列の種類変更] ダイアログで、[新しいステップの追加選択。
値を置き換える
1 つ以上のレコードに NULL 値が含まれている場合があります。 たとえば、 Story Points または Remaining Work に値が入力されていない可能性があります。
レポートを簡単にするために、次の手順に従って null をゼロに置き換えます。
- 列ヘッダーをクリックして列を選択します。
- Transform メニューを選択します。
- [値 置き換えを選択します。 [ 値の置換 ダイアログで、次の手順を実行します。
- Value to Find に「null」と入力します。
- Replace Withに「0」と入力します。
- OK を選択します。
カスタム列を作成する
達成率の計算列を作成する
達成率列を追加する前に、ピボット状態列のすべての null 値を必ず置き換えてください。
[列 追加] メニュー 選択します。
Custom 列を選択します。
新しい列名に「PercentComplete」と入力します。
Custom 列の数式に次のように入力します。
= [Completed]/([Proposed]+[InProgress]+[Resolved]+[Completed])
Note
作業項目に Resolved ワークフロー状態カテゴリにマップされていない場合、Resolved 列がない可能性があります。 その場合は、上記の数式で "[解決済み]" を省略します。
OK をクリックします。
Transform メニューを選択します。
Data Type を選択し、Percentage を選択します。
列フィールドの名前を変更する
展開が完了したら、1 つ以上の列の名前を変更できます。
列ヘッダーを右クリックし、 Rename... を選択します。
列フィールドの新しいラベルを入力し、Enter キーを押します。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。