教學課程:在 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 服務上的查詢,都會發生這個程序。 所有這些步驟都會循序擷取在 [查詢設定] 窗格的 [套用的步驟] 中。 我們將逐步完成本文中的每個步驟。
從 Web 來源匯入資料。 選取 [取得資料] 下拉式清單,然後選擇 [Web]。
將此 URL 貼到 [從 Web] 對話方塊,然後選取 [確定] 。
https://www.fool.com/research/best-states-to-retire
在 [導覽器] 對話方塊中,選取開頭為
Individual factor scores
的項目的核取方塊,然後選擇 [轉換資料]。提示
來自上一個 URL 的資料表中某些資訊可能會變更或偶爾更新。 因此,您可能需要據此調整本文中的選取項目或步驟。
[Power Query 編輯器] 視窗隨即開啟。 您可以在 [套用步驟] 底下的 [查詢設定] 窗格中看到目前套用預設步驟。
- 來源:連線至網站。
- 從 Html 擷取的資料表:選取資料表。
- 升級的標頭:將資料的前列變更為資料行標頭。
- 變更的類型:將匯入為文字的資料行類型變更為其推斷的類型。
將表格名稱從預設
Individual factor scores...
變更為Retirement Data
,然後按 Enter。現有的資料會依加權分數排序,如來源網頁的 [方法] 中所述。 然後,我們會排序此資料行上的表格,以比較自訂分數的排名與現有的分數。
從 [新增資料行] 功能區,選取 [自訂資料行]。
在 [自訂資料行] 對話方塊的 [新增資料行名稱] 欄位中,輸入新增分數。 在 [自訂資料行公式] 中,輸入下列資料:
( [Quality of life] + [Cost of housing] + [Public health] + [Crime] + [Taxes] + [Weather] + [#"Non-housing cost of living"] ) / 7
確定狀態訊息為「未偵測到任何語法錯誤」,然後選取 [確定]。
在 [查詢設定]中,[套用的步驟] 清單現在會顯示我們剛才定義的新 [新增自訂] 步驟。
調整資料
在使用此查詢之前,讓我們進行一些變更來調整其資料:
藉由移除資料行來調整排名。
例如,假設天氣不是我們的結果的一個因素。 從查詢中移除此資料行不會影響其他資料。
修正任何錯誤。
由於我們移除了資料行,因此需要藉由變更資料行公式來調整 [新增分數] 資料行中的計算。
將資料排序。
根據 [新增分數] 資料行排序資料,並比較現有的 [順位] 資料行。
取代資料。
我們將醒目提示如何取代特定值,以及如何插入套用的步驟。
下列步驟會說明這些變更。
若要移除 [天氣]資料行,請選取該資料行並從功能區選擇 [首頁] 索引標籤,然後選擇 [移除資料行]。
注意
請注意,新增分數值尚未變更;這是因為步驟順序的關係。 Power Query 編輯器會循序記錄步驟,但彼此獨立。 若要在不同的順序中套用動作,您可以向上或向下移動每個套用的步驟。
以滑鼠右鍵按一下步驟以查看其操作功能表。
從特色選單選取 [移動之前],將最後一個步驟 [已移除資料行] 向上移動到 [已新增自訂] 步驟的正上方。 您也可以使用滑鼠,將步驟移至所需的位置。
選取 [已新增自訂] 步驟。
請注意,[新增分數] 資料行現在會顯示 [錯誤],而不是計算值。
有幾種方式可以取得每個錯誤的詳細資訊。 如果您在不按下 [錯誤] 一字的情況下選取儲存格,Power Query 編輯器會顯示錯誤資訊。
如果您直接選取 [錯誤] 一字,則Power Query 編輯器會在 [查詢設定] 窗格中建立一個 [套用的步驟],並顯示該錯誤的相關資訊。 因為我們不需要在其他地方顯示錯誤資訊,請選取 [取消]。
若要修正錯誤,需要兩個變更:移除天氣資料行名稱,並將除數從 7 變更為 6。 您可以透過兩種方式進行這些變更:
以滑鼠右鍵按一下 [新增自訂] 步驟,然後選取 [編輯設定],或按下步驟名稱旁的齒輪圖示,以顯示您用來建立 [新增分數] 資料行的 [自訂資料行] 對話方塊。 如先前所述編輯公式,直到看起來像這樣:
選取 [新增分數] 資料行,然後從 [檢視] 索引標籤啟用 [公式列] 核取方塊來顯示資料行的資料公式。
如先前所述編輯公式,直到看起來像這樣,然後按 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 編輯器會以修改過的值來取代資料,而 [已新增自訂] 步驟會完成,而不會發生任何錯誤。
注意
您也可以使用功能區或快顯功能表選取 [移除錯誤] 來移除任何發生錯誤的資料列。 不過,在本教學課程中,我們想要保留資料表中的所有資料。
根據 [新增排序] 資料行來排序資料。 首先,選取最後一個套用的步驟,[新增自訂] 以顯示最新的資料。 然後,選取 [新增分數] 資料行標頭旁的下拉式清單,然後選擇 [遞減排序]。
資料現在會根據 [新增分數] 進行排序。 此外,您可以選取清單中任何一處的套用的步驟,以從序列中的該時間點繼續將資料成形。 Power Query 編輯器會直接在目前選取的套用的步驟之後自動插入新步驟。
在 [套用的步驟] 中,選取自訂資料行的前一個步驟,也就是 [已移除資料行] 步驟。 在這裡,我們將取代俄勒岡州 [居住成本] 排名的值。 以滑鼠右鍵按一下包含俄勒岡州 [居住成本] 值的適當儲存格,然後選取 [取代值]。 記下目前選取哪個 [套用的步驟]。
選取插入。
因為我們正在插入步驟,所以 Power Query 編輯器會提醒我們後續步驟可能會導致查詢中斷。
將資料值變更為 100.0。
Power Query 編輯器會取代俄勒岡州的資料。 當您建立新的 [套用的步驟] 時,Power Query 編輯器會根據動作來命名步驟,在本例中為 [已取代值]。 如果您在查詢中有多個具有相同名稱的步驟,Power Query 編輯器會將遞增的數字附加至每個後續套用步驟的名稱。
選取最後一個 [套用的步驟]、[已排序資料列]。
請注意,有關俄勒岡州新排名的資料已變更。 發生這項變更的原因是因為我們在正確位置插入了 [已取代值] 步驟 (在 [已新增自訂] 步驟之前)。
現在資料已成形為我們所需的樣子。 接著我們來連接到其他資料來源並結合資料。
合併資料
各州的相關資料很有趣,而且對於建立進一步的分析工作和查詢很有用。 然而有一個問題是:大多數資料使用兩個字母的縮寫州名代碼,而不是該州的完整名稱。 我們需要一種方式來建立州名及其縮寫的關聯。
有另一個公用的資料來源可提供該關聯,但還需要進行相當多的成形,才能將資料來源連線到我們的淘汰資料表。 若要成形資料,請遵循下列步驟:
從查詢 Power Query 編輯器的 [常用] 功能區,選取 [新增來源] [Web]>。
輸入州名縮寫的網站位址:https://en.wikipedia.org/wiki/List_of_U.S._state_and_territory_abbreviations,然後選取 [確定]。
導覽器會顯示網站的內容。
針對美國州、聯邦地區、地區和其他區域選取 [代碼和縮寫]。
提示
需要一些成形,才能將此資料表的資料削減為我們想要的資料。 是否有更快或更輕鬆的方法來完成下列步驟? 沒錯,我們可以建立兩個資料表之間的 關聯性 ,並以該關聯性為基礎使資料成形。 下列範例步驟有助於學習使用資料表。 不過,關聯性可協助您快速使用來自多個資料表的資料。
若要讓資料成形,請遵循下列步驟:
移除頂端資料列。 因為這是網頁資料表建立時的產物,而我們不需要該資料列。 從 [常用] 功能區,選取 [移除資料列]>[移除頂端列]。
[移除頂端列] 對話方塊隨即出現。 指定要移除的 1 個資料列。
由於 [退休資料] 資料表沒有華盛頓特區或地區的資訊,因此需要從我們的清單中篩選它們。 選取 [區域狀態] 資料行下拉式清單,然後清除 [州] 和 [州 (正式稱為聯邦)] 以外的所有核取方塊。
移除所有不必要的資料行。 因為我們只需要將每個州對應到其官方的雙字母縮寫 ([名稱和] 和 [ANSI] 資料行),我們可以移除其他資料行。 首先選取 [名稱] 資料行 ,然後按住 CTRL 鍵,然後選取 [ANSI] 資料行。 從功能區上的 [常用] 索引標籤,選取 [移除資料行] [移除其他資料行]>。
注意
Power Query 編輯器中套用步驟的順序很重要,而且會影響資料的成形方式。 也請務必考慮某個步驟如何影響另一個後續步驟。 例如,如果您從套用的步驟中移除一個步驟,後續步驟可能無法如原本預期般運作。
注意
當您重新調整 [Power Query 編輯器] 視窗的大小使其變窄時,會壓縮某些功能區項目,以便充分利用可見空間。 當您加寬 [Power Query 編輯器] 視窗時,功能區項目會展開以充分利用增加的功能區區域。
重新命名資料行和資料表。 有幾種方式可重新命名資料行::請先選取資料行,然後從功能區上的 [轉換] 索引標籤中選取 [重新命名],或以滑鼠右鍵按一下,然後選取 [重新命名]。 下圖顯示這兩個選項,但您只需要選擇一個選項。
將資料行重新命名為 State Name 和 State Code。 若要重新命名資料表,請在 [查詢設定] 窗格的 [名稱] 中輸入 [State Codes]。
合併查詢
現在,我們已依照想要的方式將 [StateCodes] 資料表成形,那麼就讓我們將這兩個資料表或查詢合併成一個。 因為我們現在所擁有資料表是對資料套用查詢的結果,所以通常稱為「查詢」。
有兩種主要的方式可合併查詢:「合併」和「附加」。
- 當您有一或多個資料行要加入另一個查詢時,您可以合併查詢。
- 針對您想要新增至現有查詢的一或多個資料列,附加查詢。
在本案例中,我們想要合併查詢。
從 Power Query 編輯器的左窗格中,選取您要讓其他查詢合併到其中的查詢。 在本案例中是退休資料。
從功能區上的 [常用] 索引標籤選取 [合併查詢]>[合併查詢]。
系統應該會提示您設定隱私權等級,以確保合併的資料不會包含或傳輸您不想要傳輸的資料。
[合併] 視窗隨即出現。 此視窗會提示您選取要合併到所選資料表的資料表,以及要用於合併的相符資料行。
從 [退休資料] 資料表選取 [州],然後選取 [State Codes] 查詢。
當您選取相符的資料行時,就會啟用 [確定] 按鈕。
選取 [確定]。
Power Query 編輯器會在查詢的結尾建立新資料行,其中包含與現有查詢合併的資料表 (查詢) 內容。 來自合併查詢的所有資料行會壓縮進資料行中,但您可以 [展開] 資料表,並包含您要的任何資料行。
若要展開合併的資料表,並選取要包含哪些資料行,請選取展開圖示 ( )。
[展開] 視窗隨即出現。
在本案例中,我們只想要 [State Code] 資料行。 選取該資料行、取消選取 [使用原始資料行名稱作為前置詞],然後選取 [確定]。
如果我們已保留選取的 [使用原始資料行名稱作為前置詞] 核取方塊,合併的資料行會命名為 [State Codes.State Code]。
注意
如果您想要探索如何帶入 [State Code] 資料表,您可以作一點實驗。 如果您不喜歡結果,只要從 [查詢設定] 窗格的 [套用的步驟] 清單中刪除該步驟,查詢就會傳回套用該 [展開] 步驟之前的狀態。 您可以不限次數地任意執行,直到展開程序看起來是您要的方式為止。
我們現在有結合兩個資料來源的單一查詢 (資料表),其中每個資料來源都已成形以符合我們的需求。 此查詢可以作為相關資料連線的基礎,例如居住費用統計資料、生活品質,或任何州的犯罪率。
若要套用變更並關閉 Power Query 編輯器,請從 [常用] 功能區索引標籤選取 [關閉並套用]。
已轉換的語意模型隨即出現在 Power BI Desktop,已可用來建立報表。
相關內容
如需 Power BI Desktop 及其功能的詳細資訊,請參閱下列資源: