基於每一種資料來源的類型、格式、結構與複雜度有所不同,在使用Power Query匯入外部資料進行查詢時,便會自動完成先期的資料匯入與轉換步驟,而從這些查詢步驟的語句、步驟數目,您也可以輕鬆解讀資料處理的過程。
以剛剛在Power Query環境下操作匯入外部的XML檔案為例,所建立的查詢裡會自動完成2個查詢步驟。分別是[來源]以及[已變更類型],逐一呈現在畫面右側的[查詢設定]窗格裡,而最後一個步驟的結果也正是此查詢的最後輸出。當您以滑鼠點選查詢步驟時,該查詢步驟所對應的原始程式碼,也就是M語言程式會立即顯示在視窗上方的[資料編輯列](即[公式編輯列])上。想想,這不是很類似在Excel環境裡工作表底端的公式編輯列上輸入與編輯公式相同操作介面嗎?(實作檔案 data.zip 下載)

解說第1個步驟「來源」:
- 來源= Xml.Tables(File.Contents("F:\2025\PowerQuery文章\MLB球隊.xml"))
即便不會從無到有的撰寫,但也應該不難看懂這是取得來自xml格式的表格(Xml.Tables),而檔案的內容(File.Contents)是來自路徑與檔案名稱為"F:\2025\PowerQuery文章\MLB球隊.xml"的XML檔案。
解說第2個步驟「已變更類型」:
- = Table.TransformColumnTypes(來源,{{"Attribute:generated", type datetime}})
顧名思義這應該是針對表格裡的資料欄位進行資料型態的設定與變更(Table.TransformColumnTypes)
回到最後一個步驟,從查詢輸出結果中,可以看到此次匯入的這份XML檔案,第1個資料行的欄位名稱是「MLB球隊」其資料型態是M語言的容器 – 資料表(若您在M語言容器這方面比較沒有經驗,可參閱筆者另一系列文章)。第2個資料欄位的欄位名稱是「MLB球隊」其資料型態也是M語言的容器– 資料表。當您看到這個資料列的內容,並將滑鼠游標移至此Table文字上,滑鼠游標立即呈現超連結般的手指頭狀,但點按下去並非超連結的意思,而是展開此資料表(Table)之意。在畫面右側[查詢設定]工作窗格裡,套用的查詢步驟中也多了兩個步驟:[MLB球隊1]以及[已經變類型1]。

您也可以如同先前所學習的操作,透過進階編輯器來仔細導讀、研究一下這些操作過程的M語言程式碼,以理解程式碼的前後關係與思維邏輯。此時點按[常用]索引標籤後,點按[查詢]群組裡的[進階編輯器]命令按鈕。

隨即開啟[進階編輯器]對話,可以看到此查詢的完整M語言程式編碼,在此就可以看到每一個查詢步驟的名稱、程式碼,其中第3個步驟的程式碼:
= 已變更類型{0}[MLB球隊]
便是當時將MLB球隊資料表其首筆記錄的內容展開,然後Power Query又主動執行第4個步驟:Table.TransformColumnTypes的程式碼,將各資料欄位設定為適合的資料型態。

對此次的查詢而言,這是第二度進入Power Query編輯器進行編輯,因此,結束查詢編輯器的操作時,並無法點選可選擇查詢結果輸出的[關閉並載入至…]選項,而只能點選[關閉並載入至]選項。

返回Excel活頁簿畫面,就可以看到30支MLB球隊的球場資訊資料表。

學習XML檔案格式與實作系列:
- <<學習XML檔案格式與實作系列:(1/6) 說說XML的特性>>
- <<學習XML檔案格式與實作系列:(2/6) 為什麼我匯入的XML不一樣?>>
- <<學習XML檔案格式與實作系列:(3/6) 認識XML檔案>>
- <<學習XML檔案格式與實作系列:(4/6) 解析XML檔案開頭的定義>>
- <<學習XML檔案格式與實作系列:(5/6) 實際匯入XML的情境>>
- <<學習XML檔案格式與實作系列:(6/6) 展開XML內容的查詢過程>>