教學課程:在 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
,然後選擇 [ 轉換數據]。
提示
來自上一個 URL 的數據表中某些資訊可能會變更或偶爾更新。 因此,您可能需要據此調整本文中的選取專案或步驟。
[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。
注意
如果您想要探索如何帶入 狀態代碼 數據表,您可以實驗一點。 如果您不喜歡結果,只要從 [查詢 設定] 窗格中的 [套用步驟] 列表中刪除該步驟,查詢就會傳回該狀態,再套用該 Expand 步驟。 在展開程式看起來您想要的方式之前,您可以執行此動作的次數。
我們現在有一個結合兩個數據源的單一查詢 (table),每個數據源都是為了符合我們的需求而成形的。 此查詢可以是相關數據連線的基礎,例如住房成本統計數據、生活品質或任何州犯罪率。
若要套用變更並關閉 Power Query 編輯器,請從 [首頁] 功能區索引標籤選取 [關閉和套用]。
已轉換的語意模型會出現在Power BI Desktop中,可供用來建立報表。
相關內容
如需 Power BI Desktop 及其功能的詳細資訊,請參閱下列資源: