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