使用 Power Query,您可以將具有相同結構描述的多個檔案合併為單一邏輯資料表。
當您想要合併同一資料夾中的所有檔案時,此功能非常有用。 例如,如果您有一個資料夾,其中包含公司所有採購單的每月檔案,您可以合併這些檔案,將訂單合併到單一檢視中。
檔案可以來自各種來源,例如(但不限於):
- 本機資料夾
- SharePoint 網站
- Azure Blob 儲存體
- Azure Data Lake Storage (Gen1 和 Gen2)
當您使用這些來源時,請注意它們共用相同的資料表結構描述,通常稱為 檔案系統檢視。 下列螢幕擷取畫面顯示檔案系統檢視的範例。
在檔案系統檢視中, 「內容 」欄包含每個檔案的二進位表示法。
備註
您可以使用任何可用的欄位來篩選檔案系統視圖中的檔案清單。 最好篩選此檢視,以僅顯示您需要合併的檔案,例如篩選 [副檔名] 或 [資料夾路徑] 等欄位。 如欲瞭解更多資訊,請前往 資料夾。
選取 [內容 ] 資料行中的任何 [二進位] 值,會自動建立該特定檔案的一系列導覽步驟。 Power Query 會嘗試使用其中一個可用的連接器來解譯二進位檔,例如 文字/CSV、 Excel、 JSON 或 XML。
合併檔案會在下列階段進行:
表格預覽
當您使用任何先前提及的連接器連線到資料來源時,會開啟資料表預覽。 如果您確定要合併資料夾中的所有檔案,請選取畫面右下角的 [合併 ]。
或者,您可以選取 [轉換資料] 以存取 Power Query 編輯器,並建立檔案清單的子集 (例如,使用資料夾路徑資料行上的篩選,只包含特定子資料夾中的檔案)。 然後,選取 [ 內容 ] 資料行中包含二進位檔的資料行,然後選取下列任一資料行來合併檔案:
合併檔案對話框
選取「 合併」 或 「合併檔案」 指令後,「 合併檔案」 對話方塊會開啟,並執行下列動作:
- Power Query 會分析範例檔案 (預設為清單中的第一個檔案),並判斷要用來開啟該檔案的正確檔案連接器。
- 對話方塊提供檔案連接器體驗,就像您直接連線到該範例檔案一樣。
- 如果您想要對範例檔案使用不同的檔案,可以從範例 檔案 下拉式功能表中選擇它。
- 選用項目: 您可以選取 略過有錯誤的檔案 , 以從最終輸出中排除任何導致錯誤的檔案。
在下圖中,Power Query 偵測到第一個檔案具有副檔名 .csv,因此會使用 文字/CSV 連接器來解譯檔案。
合併檔案輸出
合併檔案程式完成後,Power Query 會自動執行下列動作:
建立範例查詢,以執行單一檔案的所有必要擷取步驟。 它使用在 「合併檔案」 對話方塊中選取為範例檔案的檔案。
此範例查詢在 [查詢] 窗格中的名稱為 [轉換範例檔案]。
建立函式查詢,將檔案/二進位輸入參數化至範例查詢。 範例查詢和函數查詢是連結的,因此範例查詢的變更會反映在函數查詢中。
這些查詢會列在 [協助程式查詢 ] 群組中。
將函數查詢套用至具有輸入二進位檔的原始查詢 (例如資料夾查詢)。 因此,它會套用每列二進位輸入的函數查詢,然後將產生的資料擷取展開為頂層資料行。
建立一個以前置詞 Transform file from 和初始查詢作為尾碼的新群組,並組織用來在該群組中建立這些合併檔案的所有元件。
您可以輕鬆組合給定資料夾中的所有文件,只要它們具有相同的檔案類型和結構(包括相同的列)。 您也可以透過修改自動產生的範例查詢來套用更多轉換或擷取步驟,而不必擔心修改或建立其他函數查詢步驟。
備註
您可以修改範例查詢內的步驟,以變更套用至查詢中每個二進位檔的函數。 範例查詢會連結至函數,因此對範例查詢所做的任何變更都會反映在函數查詢中。
如果任何變更影響資料行名稱或資料行資料類型,請務必檢查輸出查詢的最後一個步驟。 新增 [變更資料行類型 ] 步驟可能會造成步驟層級錯誤,導致您無法視覺化資料表。 如需相關資訊,請移至 處理錯誤。