分享方式:


教學課程:在 Power BI Desktop 中將資料成形及合併

使用 Power BI Desktop,您可以連線到各種不同的資料來源,然後將資料成形以符合需求,以便建立能夠與其他人共用的視覺效果報表。 將資料「成形」的意思為轉換資料:重新命名資料行或資料表、將文字變更為數值、移除資料列、將第一個資料列設定為標頭等。 「結合」資料的意思為連線到二個或更多個資料來源、視需要將資料成形,然後合併成單一查詢。

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

  • 使用 Power Query 編輯器將資料成形。
  • 連線到不同的資料來源。
  • 合併那些資料來源,並建立可在報表中使用的資料模型。

Power BI Desktop 中的 Power Query 編輯器使用滑鼠右鍵功能表以及 [轉換] 功能區。 您可以在功能區中選取的大多數功能,也可以透過以滑鼠右鍵按一下項目 (例如資料行),然後從顯示的功能表中選擇來加以存取。

塑形資料

若要在 Power Query 編輯器中使用將資料成形,您可以提供 Power Query 編輯器逐步指示,以在載入和呈現資料時調整資料。 原始資料來源不會受到影響,只有這個特定資料檢視會受調整或「成形」

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

Power Query 編輯器的螢幕擷取畫面,其中包含 [查詢設定] 窗格和 [套用的步驟] 清單。

  1. 從 Web 來源匯入資料。 選取 [取得資料] 下拉式清單,然後選擇 [Web]

    Power Query 編輯器的螢幕擷取畫面,其中已選取 [取得資料] 功能表和 [Web 來源]。

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

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

    Power Query 編輯器的 [從 Web] 對話方塊螢幕擷取畫面,其中已輸入來源頁面的 URL。

  3. 在 [導覽器] 對話方塊中,選取開頭為 Individual factor scores 的項目的核取方塊,然後選擇 [轉換資料]

    Power Query 編輯器的 [導覽] 對話方塊的螢幕擷取畫面,其中已選取 HTML 資料表 1,並醒目提示 [轉換資料] 按鈕。

    提示

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

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

    • 來源:連線至網站。
    • 從 Html 擷取的資料表:選取資料表。
    • 升級的標頭:將資料的前列變更為資料行標頭。
    • 變更的類型:將匯入為文字的資料行類型變更為其推斷的類型。

    [Power Query 編輯器] 視窗的螢幕擷取畫面,其中已醒目提示 [查詢設定]。

  5. 將表格名稱從預設 Individual factor scores... 變更為 Retirement Data,然後按 Enter

    Power Query 編輯器的螢幕擷取畫面,其中顯示如何在 [查詢設定] 中編輯表格名稱。

  6. 現有的資料會依加權分數排序,如來源網頁的 [方法] 中所述。 然後,我們會排序此資料行上的表格,以比較自訂分數的排名與現有的分數。

  7. 從 [新增資料行] 功能區,選取 [自訂資料行]

    Power Query 編輯器的 [新增資料行] 功能區螢幕擷取畫面,其中已醒目提示 [自訂資料行] 按鈕。

  8. 在 [自訂資料行] 對話方塊的 [新增資料行名稱] 欄位中,輸入新增分數。 在 [自訂資料行公式] 中,輸入下列資料:

    ( [Quality of life] + [Cost of housing] + [Public health] + [Crime] + [Taxes] + [Weather] + [#"Non-housing cost of living"] ) / 7
    
  9. 確定狀態訊息為「未偵測到任何語法錯誤」,然後選取 [確定]

    Power Query 編輯器的 [自訂資料行] 對話方塊螢幕擷取畫面,其中顯示新的資料行名稱、自訂資料行公式,而且沒有語法錯誤。

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

    Power Query 編輯器的 [查詢設定] 窗格螢幕擷取畫面,其中顯示 [套用的步驟] 清單及目前的動作。

調整資料

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

  • 藉由移除資料行來調整排名。

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

  • 修正任何錯誤。

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

  • 將資料排序。

    根據 [新增分數] 資料行排序資料,並比較現有的 [順位] 資料行。

  • 取代資料。

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

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

  1. 若要移除 [天氣]資料行,請選取該資料行並從功能區選擇 [首頁] 索引標籤,然後選擇 [移除資料行]

    Power Query 編輯器 [首頁] 功能表的螢幕擷取畫面,其中已醒目提示 [移除資料行] 按鈕。

    注意

    請注意,新增分數值尚未變更;這是因為步驟順序的關係。 Power Query 編輯器會循序記錄步驟,但彼此獨立。 若要在不同的順序中套用動作,您可以向上或向下移動每個套用的步驟。

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

    Power Query 編輯器 [套用的步驟] 操作功能表的螢幕擷取畫面。

  3. 從特色選單選取 [移動之前],將最後一個步驟 [已移除資料行] 向上移動到 [已新增自訂] 步驟的正上方。 您也可以使用滑鼠,將步驟移至所需的位置。

    Power Query 編輯器的 [套用的步驟] 清單螢幕擷取畫面,其中 [已移除資料行] 步驟現在已移至 [自訂資料行] 步驟上方。

  4. 選取 [已新增自訂] 步驟。

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

    Power Query 編輯器和包含錯誤值的 [新增分數] 資料行的螢幕擷取畫面。

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

    Power Query 編輯器的螢幕擷取畫面,其中顯示 [新增分數] 資料行與 [錯誤] 詳細資料。

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

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

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

      Power Query 編輯器的 [自訂資料行] 對話方塊的螢幕擷取畫面,其中已修正公式錯誤。

    2. 選取 [新增分數] 資料行,然後從 [檢視] 索引標籤啟用 [公式列] 核取方塊來顯示資料行的資料公式。

      Power Query 編輯器的螢幕擷取畫面,其中顯示 [新增分數] 資料行及其已修正錯誤的資料公式。

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

      = Table.AddColumn(#"Removed Columns", "New score", each ( [Quality of life] + [Cost of housing] + [Public health] + [Crime] + [Taxes] + [#"Non-housing cost of living"] ) / 6)
      

    Power Query 編輯器會以修改過的值來取代資料,而 [已新增自訂] 步驟會完成,而不會發生任何錯誤。

    注意

    您也可以使用功能區或快顯功能表選取 [移除錯誤] 來移除任何發生錯誤的資料列。 不過,在本教學課程中,我們想要保留資料表中的所有資料。

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

    Power Query 編輯器的螢幕擷取畫面,顯示已醒目提示 [遞減排序] 的 [新增分數] 資料行。

    資料現在會根據 [新增分數] 進行排序。 此外,您可以選取清單中任何一處的套用的步驟,以從序列中的該時間點繼續將資料成形。 Power Query 編輯器會直接在目前選取的套用的步驟之後自動插入新步驟。

  7. 在 [套用的步驟] 中,選取自訂資料行的前一個步驟,也就是 [已移除資料行] 步驟。 在這裡,我們將取代俄勒岡州 [居住成本] 排名的值。 以滑鼠右鍵按一下包含俄勒岡州 [居住成本] 值的適當儲存格,然後選取 [取代值]。 記下目前選取哪個 [套用的步驟]

    Power Query 編輯器視窗的螢幕擷取畫面,顯示 [居住成本] 資料行,其中已醒目提示 [取代值] 操作功能表項目。

  8. 選取插入

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

    Power Query 編輯器 [插入步驟驗證] 對話方塊的螢幕擷取畫面。

  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_and_territory_abbreviations,然後選取 [確定]

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

    Power Query 編輯器的 [導覽器] 頁面螢幕擷取畫面,顯示已選取的 [代碼] 和 [縮寫] 資料表。

  3. 針對美國州、聯邦地區、地區和其他區域選取 [代碼和縮寫]

    提示

    需要一些成形,才能將此資料表的資料削減為我們想要的資料。 是否有更快或更輕鬆的方法來完成下列步驟? 沒錯,我們可以建立兩個資料表之間的 關聯性 ,並以該關聯性為基礎使資料成形。 下列範例步驟有助於學習使用資料表。 不過,關聯性可協助您快速使用來自多個資料表的資料。

若要讓資料成形,請遵循下列步驟:

  1. 移除頂端資料列。 因為這是網頁資料表建立時的產物,而我們不需要該資料列。 從 [常用] 功能區,選取 [移除資料列]>[移除頂端列]

    Power Query 編輯器的螢幕擷取畫面,其中醒目提示 [移除資料列] 下拉式清單和 [移除頂端列] 項目。

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

  2. 由於 [退休資料] 資料表沒有華盛頓特區或地區的資訊,因此需要從我們的清單中篩選它們。 選取 [區域狀態] 資料行下拉式清單,然後清除 [州] 和 [州 (正式稱為聯邦)] 以外的所有核取方塊。

    Power Query 編輯器的螢幕擷取畫面,顯示僅選取 [州] 值的資料行篩選。

  3. 移除所有不必要的資料行。 因為我們只需要將每個州對應到其官方的雙字母縮寫 ([名稱和] 和 [ANSI] 資料行),我們可以移除其他資料行。 首先選取 [名稱] 資料行 ,然後按住 CTRL 鍵,然後選取 [ANSI] 資料行。 從功能區上的 [常用] 索引標籤,選取 [移除資料行] [移除其他資料行]>

    Power Query 編輯器的螢幕擷取畫面,其中醒目提示 [移除資料列] 下拉式清單和 [移除其他資料行] 項目。

    注意

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

    注意

    當您重新調整 [Power Query 編輯器] 視窗的大小使其變窄時,會壓縮某些功能區項目,以便充分利用可見空間。 當您加寬 [Power Query 編輯器] 視窗時,功能區項目會展開以充分利用增加的功能區區域。

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

    Power Query 編輯器的螢幕擷取畫面,其中醒目提示 [重新命名] 按鈕,以及 [重新命名] 滑鼠右鍵項目。

  5. 將資料行重新命名為 State NameState Code。 若要重新命名資料表,請在 [查詢設定] 窗格的 [名稱] 中輸入 [State Codes]

    Power Query 編輯器視窗的螢幕擷取畫面,顯示將州代碼來源資料成形至資料表的結果。

合併查詢

現在,我們已依照想要的方式將 [StateCodes] 資料表成形,那麼就讓我們將這兩個資料表或查詢合併成一個。 因為我們現在所擁有資料表是對資料套用查詢的結果,所以通常稱為「查詢」

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

  • 當您有一或多個資料行要加入另一個查詢時,您可以合併查詢。
  • 針對您想要新增至現有查詢的一或多個資料附加查詢。

在本案例中,我們想要合併查詢。

  1. 從 Power Query 編輯器的左窗格中,選取您要讓其他查詢合併到其中的查詢。 在本案例中是退休資料

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

    Power Query 編輯器的 [合併查詢] 下拉式清單的螢幕擷取畫面,其中已醒目提示 [合併查詢] 項目。

    系統應該會提示您設定隱私權等級,以確保合併的資料不會包含或傳輸您不想要傳輸的資料。

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

  3. 從 [退休資料] 資料表選取 [州],然後選取 [State Codes] 查詢。

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

    Power Query 編輯器 [合併] 對話方塊的螢幕擷取畫面。

  4. 選取 [確定]。

    Power Query 編輯器會在查詢的結尾建立新資料行,其中包含與現有查詢合併的資料表 (查詢) 內容。 來自合併查詢的所有資料行會壓縮進資料行中,但您可以 [展開] 資料表,並包含您要的任何資料行。

  5. 若要展開合併的資料表,並選取要包含哪些資料行,請選取展開圖示 ( )。

    [展開] 視窗隨即出現。

    Power Query 編輯器資料行 [展開] 對話方塊的螢幕擷取畫面,其中已醒目提示 [State Code] 資料行。

  6. 在本案例中,我們只想要 [State Code] 資料行。 選取該資料行、取消選取 [使用原始資料行名稱作為前置詞],然後選取 [確定]

    如果我們已保留選取的 [使用原始資料行名稱作為前置詞] 核取方塊,合併的資料行會命名為 [State Codes.State Code]

    注意

    如果您想要探索如何帶入 [State Code] 資料表,您可以作一點實驗。 如果您不喜歡結果,只要從 [查詢設定] 窗格的 [套用的步驟] 清單中刪除該步驟,查詢就會傳回套用該 [展開] 步驟之前的狀態。 您可以不限次數地任意執行,直到展開程序看起來是您要的方式為止。

    我們現在有結合兩個資料來源的單一查詢 (資料表),其中每個資料來源都已成形以符合我們的需求。 此查詢可以作為相關資料連線的基礎,例如居住費用統計資料、生活品質,或任何州的犯罪率。

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

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

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