教學課程:在 Power BI Desktop 中塑造和合併數據

透過 Power BI Desktop,您可以連線到許多不同類型的數據源,然後塑造數據以符合您的需求,讓您能夠建立視覺報表以與他人共用。 成形 數據表示轉換數據:重新命名數據行或數據表、將文字變更為數位、移除數據列、將第一個數據列設定為標頭等等。 結合數據表示連線到兩個或多個數據源,並視需要加以成形,然後將它們合併成單一查詢。

在本教學課程中,您將了解如何:

  • 使用 Power Query 編輯器 塑造數據。
  • 連線 至不同的數據源。
  • 結合這些數據源,並建立要用於報表的數據模型。

本教學課程示範如何使用Power BI Desktop塑造查詢,並醒目提示最常見的工作。 這裡所使用的查詢會更詳細地說明,包括如何在開始使用Power BI Desktop從頭開始建立查詢。

Power BI Desktop 中的 Power Query 編輯器 會使用滑鼠右鍵功能表和轉換功能區。 您也可以在功能區中選取大部分專案,方法是以滑鼠右鍵按兩下專案,例如數據行,然後從出現的功能表中選擇。

塑形資料

若要在 Power Query 編輯器 中塑造數據,您可以提供逐步指示,讓 Power Query 編輯器 在載入和呈現數據時調整數據。 原始數據源不會受到影響;只會調整或 成形此特定數據檢視。

您指定的步驟(例如重新命名數據表、轉換數據類型或刪除資料行)會由 Power Query 編輯器 記錄。 每次此查詢連接到數據源時,Power Query 編輯器 執行這些步驟,讓數據一律以您指定的方式成形。 每當您使用 Power Query 編輯器,或針對使用共用查詢的任何人,例如 Power BI 服務 時,就會發生此程式。 這些步驟會依序擷取到 [查詢 設定] 窗格中的 [套用步驟]。 本文將逐步解說每一個步驟。

Screenshot of Power Query Editor with the Query Settings pane and Applied steps list.

  1. 從 Web 來源匯入數據。 選取 [ 取得數據] 下拉式列表,然後選擇 [Web]。

    Screenshot of Power Query Editor with the Get data menu and Web source selected.

  2. 將此 URL 貼到 [ 從 Web] 對話框中,然後選取 [ 確定]。

    https://www.fool.com/research/best-states-to-retire
    

    Screenshot of Power Query Editor's From Web dialog with the source page's URL entered.

  3. 在 [ 導覽器] 對話框中,選取 Table 1,然後選擇 [ 轉換數據]。

    Screenshot of Power Query Editor's Navigator dialog with HTML Table 1 selected and the Transform Data button highlighted.

提示

來自上一個 URL 的數據表中某些資訊可能會變更或偶爾更新。 因此,您可能需要據此調整本文中的選取專案或步驟。

  1. [Power Query 編輯器] 視窗隨即開啟。 您可以在 [套用的步驟] 底下的 [查詢 設定] 窗格中,看到到目前為止所套用的預設步驟

    • 來源:連線 網站。
    • 從 Html 擷取的數據表:選取數據表。
    • 升級的標頭:將數據頂端數據列變更為數據行標頭。
    • 已變更類型:將匯入為文字的數據行類型變更為其推斷的類型。

    Screenshot of the Power Query Editor window with Query Settings highlighted.

  2. 將數據表名稱從預設值 Table 1 變更為 Retirement Data,然後按 Enter 鍵。

    Screenshot of Power Query Editor showing how to edit a table name in Query Settings.

  3. 現有的數據會依加權分數來排序,如 [方法] 底下的來源網頁所述。 讓我們新增自定義數據行來計算不同的分數。 然後,我們會排序此數據行上的數據表,以比較自定義分數的排名與現有的 Rank

  4. 從 [ 新增數據行] 功能區中,選取 [自定義數據行]。

    Screenshot of Power Query Editor's Add Column ribbon with the Custom Column button highlighted.

  5. 在 [自定義數據行] 對話方塊的 [新增數據行名稱] 中,輸入 [新增分數]。 針對 [ 自定義數據行公式],輸入下列數據:

    ( [Quality of life] + [Housing cost] + [Healthcare cost and quality] + [Crime rate rate] + [#"Public health/COVID-19 response"] + [Sales taxes] + [#"Non-housing costs"] + [Weather] ) / 8
    
  6. 請確定狀態消息未 偵測到語法錯誤,然後選取 [ 確定]。

    Screenshot of Power Query Editor's Custom Column dialog showing the new column name, custom column formula, and no syntax errors.

  7. [查詢] 設定 中,[套用的步驟] 列表現在會顯示我們剛才定義的新增自定義步驟。

    Screenshot of Power Query Editor's Query Settings pane showing the Applied Steps list with the actions so far.

調整數據

在使用此查詢之前,讓我們進行一些變更來調整其數據:

  • 藉由移除數據行來調整排名。

    例如,假設 Weather 在我們的結果中不是一個因素。 從查詢中移除此資料行不會影響其他數據。

  • 修正任何錯誤。

    由於我們已移除數據行,因此需要藉由變更其公式來調整 [新增分數] 數據行中的計算。

  • 排序數據。

    根據 [ 新增分數 ] 數據行排序數據,並比較現有的 Rank 數據行。

  • 取代數據。

    我們將醒目提示如何取代特定值,以及如何插入套用的步驟。

下列步驟會說明這些變更。

  1. 若要移除 [天氣] 數據行,請選取數據行,從功能區選擇 [首頁 ] 索引卷標,然後選擇 [ 移除數據行]。

    Screenshot of Power Query Editor's Home menu with the Remove Columns button highlighted.

    注意

    由於 步驟的順序,[新增分數 ] 值尚未變更。 Power Query 編輯器 會循序記錄步驟,但彼此獨立。 若要在不同的順序中套用動作,您可以向上或向下移動每個套用的步驟。

  2. 以滑鼠右鍵按兩下步驟以查看其操作功能表。

    Screenshot of Power Query Editor's Applied Steps context menu.

  3. 將最後一個步驟 [已移除的數據行] 移至 [新增自定義] 步驟的正上方

    Screenshot of Power Query Editor's Applied Steps list with the Removed Columns step now moved above the Custom Column step.

  4. 選取 [ 新增自定義 ] 步驟。

    請注意,[新增分數] 資料行現在會顯示 [錯誤],而不是計算的值。

    Screenshot of Power Query Editor and the New score column containing Error values.

    有數種方式可以取得每個錯誤的詳細資訊。 如果您選取儲存格而不按下 [錯誤] 一詞,Power Query 編輯器 會顯示錯誤資訊。

    Screenshot of Power Query Editor showing the New score column with Error details.

    如果您直接選取 [錯誤] 一詞,Power Query 編輯器 會在 [查詢 設定] 窗格中建立套用的步驟,並顯示錯誤的相關信息。 因為我們不需要在其他地方顯示錯誤資訊,請選取 [ 取消]。

  5. 若要修正錯誤,需要兩個變更,移除 Weather 資料行名稱,並將除數從 8 變更為 7。 您可以透過兩種方式進行這些變更:

    1. 以滑鼠右鍵按兩下 [自訂資料行] 步驟,然後選取 [編輯 設定]。 這會顯示您用來建立新分數資料行的 [自訂數據行] 對話方塊。 如先前所述編輯公式,直到看起來像這樣:

      Screenshot of Power Query Editor's Custom Column dialog with formula errors fixed.

    2. 選取 [新增分數] 數據行,然後從 [檢視] 索引卷標啟用 [公式列] 複選框,以顯示數據行的數據公式。

      Screenshot of Power Query Editor showing the New score column and its data formula with errors fixed.

      如先前所述編輯公式,直到看起來像這樣,然後按 Enter 鍵。

      = Table.AddColumn(#"Removed Columns", "New score", each ( [Quality of life] + [Housing cost] + [Healthcare cost and quality] + [Crime rate rate] + [#"Public health/COVID-19 response"] + [Sales taxes] + [#"Non-housing costs"] ) / 7)              
      

    Power Query 編輯器 會將數據取代為修訂的值和已新增自定義步驟完成,且沒有任何錯誤。

    注意

    您也可以使用功能區或滑鼠右鍵功能表來選取 [ 移除錯誤],以移除任何有錯誤的數據列。 不過,在本教學課程中,我們想要保留數據表中的所有數據。

  6. 根據 [ 新增分數 ] 資料行來排序數據。 首先,選取最後一個套用的步驟[ 已新增自定義 ] 以顯示最新的數據。 然後,選取 [新增分數] 數據行標頭旁邊的下拉式清單,然後選擇 [排序遞減]。

    Screenshot of Power Query Editor showing the New score column with Sort Descending highlighted.

    數據現在會根據 [新增分數] 排序。 您可以在清單中的任何位置選取已套用的步驟,並繼續在序列中的該時間點成形數據。 Power Query 編輯器 會自動在目前選取的套用步驟之後直接插入新步驟。

  7. [套用的步驟] 中,選取自定義數據行前面的步驟,也就是 [ 已移除 的數據行] 步驟。 在這裡,我們將取代俄勒岡州住房成本排名的值。 以滑鼠右鍵按兩下包含俄勒岡 州住房成本 值的適當儲存格,然後選取[ 取代值]。 請注意,目前已選取 [ 套用的步驟 ]。

    Screenshot of the Power Query Editor window showing the Housing cost column with the Replace Values right-click menu item highlighted.

  8. 選取插入

    因為我們要插入步驟,Power Query 編輯器 提醒我們後續步驟可能會導致查詢中斷。

    Screenshot of Power Query Editor's Insert Step verification dialog.

  9. 將數據值變更為 100.0

    Power Query 編輯器 取代俄勒岡州的數據。 當您建立新的套用步驟時,Power Query 編輯器 根據動作命名它,在此案例中為 [已取代的值]。 如果您在查詢中有多個具有相同名稱的步驟,Power Query 編輯器 會將遞增的數位附加至每個後續套用步驟的名稱。

  10. 選取最後 一個套用的步驟排序的數據列

    請注意,有關俄勒岡州新排名的數據已經改變。 之所以發生這項變更,是因為我們在 [新增自定義] 步驟之前,於正確的位置插入 [已取代的值] 步驟。

    我們現在已根據我們需要的範圍來塑造數據。 接下來,讓我們連接到另一個數據源,並結合數據。

合併資料

有關各種狀態的數據很有趣,而且有助於建立進一步的分析工作和查詢。 不過,有關狀態的大部分數據都會使用兩個字母的縮寫來表示狀態代碼,而不是狀態的完整名稱。 我們需要一種方法,將州名與其縮寫產生關聯。

有另一個公用數據源會提供該關聯,但它需要相當數量的成形,才能將它連接到我們的淘汰數據表。 若要塑造數據,請遵循下列步驟:

  1. 從 Power Query 編輯器 的 [首頁] 功能區中,選取 [新增來源 > Web]。

  2. 輸入網站位址以取得狀態縮寫,https://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations然後選取 [連線]。

    導覽器會顯示網站的內容。

    Screenshot of Power Query Editor's Navigator page showing the Codes and abbreviations table selected.

  3. 選取 美國州、聯邦地區、地區和其他區域的代碼和縮寫。

    提示

    需要一些成形,才能將數據表的數據剖析為我們想要的數據。 是否有更快速或更輕鬆的方式來完成下列步驟? 是,我們可以建立兩個 數據表之間的關聯 性,並根據該關聯性來塑造數據。 下列範例步驟有助於學習使用數據表。 不過,關聯性可協助您快速使用來自多個數據表的數據。

若要將數據放入圖形,請遵循下列步驟:

  1. 拿掉頂端資料列。 因為它是網頁數據表建立方式的結果,所以我們不需要它。 從 [ 首頁] 功能區中,選取 [移除數據列 > 移除頂端數據列]。

    Screenshot of Power Query Editor highlighting the Remove Rows dropdown and the Remove Top Rows item.

    [ 移除頂端資料列] 對話框隨即出現。 指定要移除的 1 個資料列。

  2. 從 [常用] 索引標籤,或從功能區中的 [轉換] 索引標籤,將新的頂端數據列升階為標頭。

  3. 因為 「淘汰數據」數據表沒有華盛頓特區或地區的資訊,因此我們需要從清單中篩選它們。 選取 [region_1] 資料行下拉式清單的 [名稱和狀態],然後清除 [狀態] 以外的所有複選框。

    Screenshot of Power Query Editor showing a column filter with only the State value selected.

  4. 拿掉所有不需要的數據行。 因為我們只需要將每個州對應到其官方的雙字母縮寫(區域和 ANSI 數據行的名稱和狀態),我們可以移除其他數據行。 首先選取 區域 數據行的 [名稱] 和 [狀態],然後按住 CTRL 鍵並選取 ANSI 數據行。 從功能區的 [首頁] 索引標籤中,選取 [移除其他數據行>]。

    Screenshot of Power Query Editor highlighting the Remove Columns dropdown and the Remove Other Columns item.

    注意

    Power Query 編輯器 中套用的步驟順序很重要,而且會影響數據成形的方式。 也請務必考慮某個步驟如何影響另一個後續步驟。 例如,如果您從套用的步驟中移除步驟,後續步驟可能無法如原本預期般運作。

    注意

    當您調整 Power Query 編輯器 視窗的大小以縮小寬度時,會壓縮某些功能區專案,以充分利用可見空間。 當您增加 Power Query 編輯器 視窗的寬度時,功能區專案會展開以充分利用增加的功能區區域。

  5. 重新命名數據行和數據表。 有幾種方式可以重新命名數據行:首先選取數據行,然後從功能區的 [轉換] 索引標籤中選取 [重新命名],或以滑鼠右鍵按兩下並選取 [重新命名]。 下圖顯示這兩個選項,但您只需要選擇一個選項。

    Screenshot of Power Query Editor highlighting the Rename button and also the Rename right-click item.

  6. 將數據行重新命名為 [狀態名稱 ] 和 [狀態代碼]。 若要重新命名數據表,請在 [查詢 設定] 窗格中輸入 [名稱狀態代碼]。

    Screenshot of Power Query Editor window showing the results of shaping state codes source data into a table.

合併查詢

既然我們已經以我們想要的方式塑造 狀態代碼 數據表,讓我們將這兩個數據表或查詢合併成一個數據表。 由於我們現在擁有的數據表是套用至數據之查詢的結果,因此通常稱為 查詢

有兩種主要的方式可合併查詢:「合併」和「附加」

  • 針對您想要新增至另一個查詢的一或多個 數據 行,您可以 合併 查詢。
  • 針對您想要新增至現有查詢的一或多個 數據列 ,您可以 附加 查詢。

在此情況下,我們想要合併查詢:

  1. 從 Power Query 編輯器的左窗格中,選取您要讓其他查詢合併的查詢。 在此案例中 ,它是「淘汰數據」。

  2. 從功能區的 [常用] 索引標籤選取 [合併查詢>合併查詢]。

    Screenshot of Power Query Editor's Merge Queries dropdown with the Merge Queries item highlighted.

    系統可能會提示您設定隱私權等級,以確保數據會合併,而不需要包含或傳輸您不想傳輸的數據。

    [合併] 視窗隨即出現。 它會提示您選取要合併至所選取資料表的數據表,以及要用於合併的相符數據行。

  3. 從 [淘汰數據] 數據表中選取 [狀態],然後選取 [狀態代碼] 查詢。

    當您選取相符的數據行時,會啟用 [ 確定] 按鈕。

    Screenshot of Power Query Editor's Merge dialog.

  4. 選取 [確定]。

    Power Query 編輯器 會在查詢結尾建立新的數據行,其中包含與現有查詢合併的數據表 (query) 內容。 合併查詢中的所有數據行都會壓縮成數據行,但您可以 展開 數據表並包含您想要的數據行。

  5. 若要展開合併的數據表,並選取要包含的數據行,請選取展開圖示 ( )。

    [展開] 視窗隨即出現。

    Screenshot of Power Query Editor's column Expand dialog showing the State Code column highlighted.

  6. 在此情況下,我們只想要 [ 狀態代碼] 數據行。 選取該數據行,清除 [使用原始數據行名稱作為前置詞],然後選取 [ 確定]。

    如果我們已選取 [使用原始數據行名稱做為前置詞] 的複選框,合併的數據行會命名為 State Code.State Code

    注意

    如果您想要探索如何帶入 狀態代碼 數據表,您可以實驗一點。 如果您不喜歡結果,只要從 [查詢 設定] 窗格中的 [套用步驟] 列表中刪除該步驟,查詢就會傳回該狀態,再套用該 Expand 步驟。 在展開程式看起來您想要的方式之前,您可以執行此動作的次數。

    我們現在有一個結合兩個數據源的單一查詢 (table),每個數據源都是為了符合我們的需求而成形的。 此查詢可以是相關數據連線的基礎,例如住房成本統計數據、生活品質或任何州犯罪率。

  7. 若要套用變更並關閉 Power Query 編輯器,請從 [首頁] 功能區索引標籤選取 [關閉和套用]。

    已轉換的語意模型會出現在Power BI Desktop中,可供用來建立報表。

    Screenshot of Power Query Editor's Close & Apply button.

如需 Power BI Desktop 及其功能的詳細資訊,請參閱下列資源: