附註: 本文已完成其任務,將於不久之後淘汰。 為了避免造成「找不到網頁」問題,我們將在我們能掌握的範圍內,移除所有連往本文的連結。 如果您建立了連往本頁面的連結,請將之移除,與我們一同維持網路暢行無阻。
附註: Power Query 在 Excel 2016 中稱為「取得及轉換」。 此處所提供的資訊適用於兩者。 若要深入了解,請參閱 Excel 2016 中的取得及轉換。
若要在 Excel 中建立 Power Query 公式,您可以使用 [查詢編輯器資料編輯列] 或 [進階編輯器]。 「查詢編輯器」是隨附於 Power Query 的工具,可讓您在 Power Query 中建立資料查詢與公式。 這些公式是使用「Power Query 公式語言」建立。 您可以使用許多 Power Query 公式來探索、合併及調整資料。 若要進一步瞭解完整的 Power Query 公式,請參閱 Power Query 公式類別。
現在,讓我們建立簡單公式,然後再建立進階公式。
建立簡單公式
以簡單公式為例,讓我們使用 Text.Proper() 公式將文字值轉換為正確的大小寫。
-
在 [POWER QUERY] 功能區索引標籤上,選擇 [從其他來源] > [空的查詢]。
-
在 [查詢編輯器資料編輯列]中,輸入 = Text.Proper("text value"),並按下 Enter 或選擇輸入圖示。
-
Power Query 會在公式結果窗格中顯示您的結果。
-
若要在 Excel 工作表中查看結果,選擇 [關閉並載入]。
結果在工作表中看起來像這樣:
您也可以在 [查詢編輯器] 中建立進階查詢公式。
建立進階公式
以進階公式為例,讓我們使用公式組合將欄中的文字轉換為正確的大小寫。 您可以使用「Power Query 公式語言」,將多個公式合併成包含資料集結果的查詢步驟。 您可以將結果匯入 Excel 工作表中。
附註: 本主題簡介進階 Power Query 公式。 若要進一步瞭解 Power Query 公式,請參閱瞭解 Power Query 公式。
例如,假設您有一個內含產品名稱的 Excel 表格,而您想要將名稱轉換為正確的大小寫。
原始表格看起來像這樣:
而您想要產生的表格看起來像這樣:
現在就讓我們透過查詢公式步驟來變更原始表格,將 [產品名稱] 欄中的值變成正確的大小寫。
使用進階編輯器的進階查詢範例
若要清空原始資料表,您可以使用 [進階編輯器] 來建立查詢公式步驟。 讓我們建立每個查詢公式步驟,以示範如何建立進階查詢。 完整的查詢公式步驟如下所列。 當您建立進階查詢時,請遵循此程序:
-
建立一系列查詢公式步驟,開頭為 let 陳述式。 請注意,「Power Query 公式語言」會區分大小寫。
-
每個查詢公式步驟都會根據名稱參照步驟,也就是依據前一個步驟。
-
使用 in 陳述式輸出查詢公式步驟。 一般而言,最後一個查詢步驟會做為 in 的最終資料集結果。
步驟 1:開啟進階編輯器
-
在 [POWER QUERY] 功能區索引標籤上,選擇 [從其他來源] > [空的查詢]。
-
在 [查詢編輯器] 中,選擇 [進階編輯器]。
-
[進階編輯器] 隨即顯示。
步驟 2:定義原始來源
在 [進階編輯器] 中:
-
使用 let 陳述式,指派 Source = Excel.CurrentWorkbook() 公式。 此步驟會使用 Excel 表格做為資料來源。 如需 Excel.CurrentWorkbook() 公式的詳細資訊,請參閱 Excel.CurrentWorkbook。
-
指派 Source 至 in 結果。
let Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content] in Source
-
您的進階查詢在 [進階編輯器] 中看起來像這樣。
-
若要查看工作表中的結果:
-
按一下 [完成]。
-
在 [查詢編輯器] 功能區中,按一下 [關閉並載入]。
-
結果在工作表中看起來像這樣:
步驟 3:將第一列上移至標題
若要將 [產品名稱] 欄中的值轉換為正確的文字,您必須先將第一列上移為欄標題。 您可以在 [進階編輯器] 中執行此動作:
-
新增 #"First Row as Header" = Table.PromoteHeaders() 公式至查詢公式步驟,並參照做為資料來源的 Source。 如需 Table.PromoteHeaders() 公式的詳細資訊,請參閱 Table.PromoteHeaders。
-
指派 #"First Row as Header" 至 in 結果。
let Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content], #"First Row as Header" = Table.PromoteHeaders(Source) in #"First Row as Header"
結果在工作表中看起來像這樣:
步驟 4:將欄中的每個值變更正確的大小寫
若要將每個 [產品名稱] 欄中的值轉換為正確的文字,您可以使用 Table.TransformColumns(),並參照 "First Row as Header” 查詢公式步驟。 您可以在 [進階編輯器] 中執行此動作:
-
新增 #"Capitalized Each Word" = Table.TransformColumns() 至查詢公式步驟,並參照 #"First Row as Header" 做為資料來源。 如需 Table.TransformColumns() 公式的詳細資訊,請參閱 Table.TransformColumns。
-
指派 #"Capitalized Each Word" 至 in 結果。
let
Source = Excel.CurrentWorkbook(){[Name="Orders"]}[Content],
#"First Row as Header" = Table.PromoteHeaders(Source),
#"Capitalized Each Word" = Table.TransformColumns(#"First Row as Header",{{"ProductName", Text.Proper}})
in
#"Capitalized Each Word"
最後的結果會將 [產品名稱] 欄中的每個值變更為正確的大小寫,在工作表中看起來像這樣:
您可以使用「Power Query 公式語言」來建立簡單到進階的資料查詢,以探索、合併並調整資料。 若要進一步瞭解 Power Query,請參閱 Microsoft Power Query for Excel 說明。