轉換分析數據以產生 Power BI 報表

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

將分析數據匯入 Power BI 之後,您可能需要在建立報表之前轉換選取的數據行數據。 本文說明如何執行其中一些基本工作,例如:

  • 展開數據行,例如 AreaAssignedToIteration
  • 查詢連結的工作項目時展開子系數據行
  • 樞紐數據行以產生選取類別狀態的計數
  • 將數據行數據類型從十進位轉換成整數
  • 取代數據行數據中的 Null 值
  • 建立自定義欄位
  • 重新命名字段。

展開數據行

此查詢會傳回數個您需要展開的數據行,才能在Power BI中使用這些數據行。 使用 OData $expand 語句提取的任何實體,會傳回具有可能數個字段的記錄。 您必須展開記錄,以將實體扁平化為其欄位。 這類實體的範例包括: AssignedTo反覆運算區域

關閉 進階編輯器 後,並在 Power Query 編輯器保留時,選取您需要扁平化實體上的展開按鈕。

  1. 例如,選擇 [區域] 的展開按鈕、選取您要展開的屬性,然後選擇 [確定]。 在這裡,我們選擇 AreaNameAreaPath 扁平化。 屬性類似於 [AreaName節點名稱] 欄位。

    Screenshot of Power BI transform data, Expand AreaPath column.

    注意

    要選取的可用屬性取決於要求在查詢中傳回的屬性。 如果您未指定任何屬性,則所有屬性都可以使用。 若要深入瞭解這些屬性,請參閱下列元數據參考: 區域反覆專案和 使用者

  2. 數據表現在包含實體欄位(s)。

    Screenshot of expanded Area columns.

  3. 針對代表需要擴充之實體的所有字段重複步驟 1 到 3。 這些出現在 未展開的數據表數據行中所列的 Record

展開子系數據行

[子系] 數據行包含具有兩個字段的數據表:StateTotalStoryPoints。 展開它。

  1. 選擇 [ 展開] 按鈕,然後選取要報告的數據列:

    Screenshot of Power BI Descendants column.

  2. 檢查所有數據行,然後選擇 [ 確定]。

    Screenshot of Power BI Descendants column, expand options.

  3. 子系實體會扁平化為選取的數據行:

    Screenshot of Power BI expanded Descendants column.

Pivot Descendants.StateCategory 數據行

  1. 選取 1Descendants.StateCategory1 數據行標頭來選取它。

  2. 選取 [轉換] 功能表,然後選取 [樞紐數據行]。 Transform menu, Pivot Column option.

  3. 在 [樞紐數據行] 對話框中,針對 [值 ] 選取 Descendants.TotalStoryPoints,然後按 [確定]。 Power BI 會為每個 StateCategory 值建立一個數據行。

    Dialog of Pivot Column for Descendants.TotalStoryPoints column.

  1. 選取資料行上的 Links 展開按鈕。

    Screenshot of Power BI Links column, expand options.

  2. 選取要扁平化的所有欄位。

    Screenshot of Power BI Links column, expand options.

  3. 選取數據行上的 Links.TargetWorkItem 展開按鈕,然後選取要扁平化的屬性。

    Screenshot of Power BI Links.TargetWorkItem column, expand options.

注意

如果連結代表一對多或多對多關聯性,則多個鏈接會展開至多個數據列,每個連結各一個。

例如,如果工作專案 #1 連結至工作專案的 #2 和 #3,則當您展開 [連結] 記錄時,工作專案會有 2 個數據列 #1。 其中一個表示其工作項目連結 #2,另一個代表其工作項目連結 #3。

轉換數據行數據類型

將 LeadTimeDays 和 CycleTimeDays 轉換為整數

LeadTimeDaysCycleTimeDays 是十進位欄位。 例如,如果 潛在客戶時間 是10天和1/2天,則值為10.5。 由於大部分的潛在客戶/週期時間報告假設其四捨五入到最近的一天,因此我們需要將這些欄位轉換成 Integer。 進行這項轉換會將小於 1 的所有值轉換成 0。

從 Power Query 編輯器 中,選取功能區 [轉換] 功能表。

  1. 選取數據行標頭以選取數據 LeadTimeDays 行。

  2. 選取 [數據類型],然後變更為 [神秘] [數位]。

    Screenshot of Power BI Transform menu, Data type selection.

  3. CycleTimeDays針對 重複 。

將 CompletedDateSK 變更為日期欄位

數據CompletedDateSK行數據會以 格式YYYYMMDD對應至已完成日期欄位的整數轉譯。 例如,2022-July-01 的整數值是20220701。 為了方便報告,我們會將其變更為 [日期] 欄位。

從 Power Query 編輯器,選取功能區 [轉換] 功能表。

  1. 選取數據 CompletedDateSK 行標頭。

  2. 選取 [數據類型 ],然後變更為 [文字]。 當 [變更數據行類型] 對話框出現時,請選取 [新增步驟] (而不是 [取代目前的步驟]。 此雙步驟程式是將它變更為 Power BI 中適當 日期 欄位的最簡單方式。

    Screenshot of Power BI Transform menu, Change Column Type dialog.

  3. 接下來,再次選取 [日期類型 ],然後選擇 [ 日期]。 在 [ 變更數據行類型 ] 對話框中,選取 [ 新增步驟]。

取代值

有時候,一或多個記錄可能包含 Null 值。 例如,可能尚未輸入 故事點剩餘工時的值。

Screenshot of Power BI table containing null values.

為了方便報告,請遵循下列步驟,以零取代 Null。

  1. 按兩下資料列標頭以選取資料行。
  2. 選取 [ 轉換 ] 功能表。
  3. 選取 [ 取代值]。 在 [ 取代值] 對話框中:
    • 在 [要尋找的值] 中輸入 “null”。
    • 在 [取代為] 中輸入 “0”。
  4. 選擇確定

建立自訂資料行

建立完成計算數據行的百分比

新增完成百分比數據行之前,請確定您取代樞紐狀態數據行中的所有 Null 值。

  1. 選取 [ 新增資料行] 選單。

  2. 選取 [自定義數據行]。

  3. 針對 [新增數據行名稱] 輸入 PercentComplete

  4. 在 [自定義數據行公式] 中輸入下列內容。

    = [Completed]/([Proposed]+[InProgress]+[Resolved]+[Completed])
    

    Custom Column Dialog, PercentComplete syntax.

    注意

    如果工作項目沒有對應至已解析工作流程狀態類別目錄的 [狀態],則您可能不會有 [已解析] 數據行。 如果是,請省略上述公式中的 “[Resolved]”。

  5. 按 [確定]

  6. 選取 [ 轉換 ] 功能表。

  7. 選取 [數據類型] ,然後選取 [ 百分比]。

重新命名數據行欄位

完成擴充之後,您可以選擇重新命名一或多個數據行。

  1. 以滑鼠右鍵按鍵按鍵列標頭,然後選取 [ 重新命名...

    Power BI Rename Columns

  2. 輸入數據行欄位的新標籤,然後按 Enter 鍵。

關閉查詢並套用您的變更

完成所有數據轉換之後,請從 [常用] 功能表選擇 [關閉及套用],以儲存查詢並返回 Power BI 中的 [報表] 索引卷標。

Screenshot of Power Query Editor Close and Apply option.