共用方式為


合併 CSV 檔案

在 Power Query 中,您可以結合來自指定數據源的多個檔案。 本文說明當您想要合併的檔案是 CSV 檔案時,體驗的運作方式。 詳細資訊:合併檔案概覽

提示

您可以從 此下載連結下載本文中使用的範例檔案,並遵循此範例。 您可以將這些檔案放在您選擇的數據源中,例如本機資料夾、SharePoint 資料夾、Azure Blob 記憶體、Azure Data Lake Storage 或其他提供檔系統檢視的數據源。

為了簡單起見,本文中的範例會使用資料夾連接器。 詳細資訊:資料夾

關於使用的範例檔案

若要合併檔案,它們都必須具有相同的結構和相同的擴展名。 此範例中使用的所有檔案都有相同的結構和擴展名 (.csv)。

每個月有 12 個 CSV 檔案,一個用於 2019 年日曆年度。 下圖顯示 1 月檔案的前 15 個數據列。

2019 年 1 月範例 CSV 檔案的螢幕快照,其中顯示標頭區段和數據其餘部分,全都以逗號分隔。

數據列數目會因檔案而異,但前四個數據列中所有檔案都有標頭區段。 它們在第五行有欄位標題,而表格的數據從第六行開始,並持續到所有後續的行。

目標是將所有 12 個檔案合併成單一數據表。 這個合併表格包含位於表格頂端的標頭列,並在標頭列之後以不同欄位包括來源名稱、日期、國家/地區、單位和全年營收數據。

範例最終合併數據表的螢幕快照。

數據表預覽

連線到裝載您要合併之檔案的資料夾時,在此範例中,該資料夾的名稱會 CSV 檔案,您會在左上角顯示資料表預覽對話方塊,以顯示資料夾路徑。 數據預覽會顯示檔案系統檢視。

檔案系統檢視數據表預覽的螢幕快照。

在此範例中,選取 [合併]。 針對 Excel 或 Power Query Desktop,選取 合併 & 轉換資料

注意

在不同情況下,您可以選擇 轉換數據,以便在合併檔案之前進一步篩選和轉換數據。 僅當您確定資料夾中僅包含您想要合併的檔案時,才推薦選取 合併

[合併檔案] 對話框

在數據表預覽中選取 [[合併] 之後,[合併檔案] 對話框隨即出現。

[合併檔案] 對話框的螢幕快照,其中顯示檔案數據。

注意

Power Query 會根據清單中找到的第一個檔案,自動偵測要使用的連接器。 若要深入瞭解 CSV 連接器,請移至 Text/CSV

在此範例中,保留所有預設設定(範例檔案 設定為 第一個檔案,以及 File originDelimiter數據類型偵測的預設值)。

現在在右下角選取 [轉換數據],以前往輸出查詢。

輸出查詢

[合併檔案] 對話框中選取 [轉換數據] 之後,您將會回到您最初從連線至本機資料夾建立的查詢中的 Power Query 編輯器。 輸出查詢現在包含最左邊數據行中的來源檔名,以及其餘數據行中每個來源檔案的數據。

合併檔案輸出查詢的螢幕快照,而不需進行其他轉換。

不過,數據的格式不正確。 您需要先從每個檔案中移除前四個數據列,再合併它們。 若要在合併檔案之前在每個檔案中進行這項變更,請在畫面左側的 [查詢] 窗格中選取 [轉換範例檔案] 查詢。

修改轉換範例檔案查詢

在此 轉換範例檔案 查詢中,Date 欄中的值表示這些數據為4月份的資料,格式為年-月-日 (YYYY-MM-DD)。 4 月 2019.csv 是表格預覽中顯示的第一個檔案。

轉換範例檔案的螢幕快照,顯示 2019 年 4 月的 dat 欄位和標題區段。

您現在必須套用一組新的轉換來清除資料。 每個轉換都會自動轉換成 Helper 查詢 群組內的函式,該群組會在合併每個檔案的數據之前套用至資料夾中的每個檔案。

需要新增至 轉換範例檔案 查詢的轉換如下:

  1. 移除頂端資料列:若要執行這項作業,請選取表格左上角的數據表圖示功能表,然後選取 [移除頂端數據列

    強調移除頂端數據列的數據表圖示功能表螢幕快照。

    在 [移除頂端數據列] 對話框中,輸入 4,然後選取 [確定]

    [移除頂端數據列] 對話框的螢幕快照,其中包含要移除的四個數據列。

    選取 [確定] 之後,您的數據表就不會再有前四個數據列。

    範例查詢的螢幕快照,其中已移除前四個數據列。

  2. 使用第一列做為標頭:再次選取資料表圖示,然後選取 [使用第一個數據列作為標頭

    表格圖示選單的螢幕快照,其中強調 [使用第一列作為標頭] 選項。

    該作業的結果會將數據表的第一行升階為新的欄標題。

    用於範例表格的螢幕截圖,其中的標題已被提升。

此作業完成後,Power Query 預設會嘗試自動偵測數據行的數據類型,並在步驟 新增 已變更的數據行類型。

修訂輸出查詢

當您回到Power Query Desktop中的 CSV 檔案 查詢時,最後一個步驟會為您提供錯誤,指出找不到數據表的數據行 'Column1'。當您回到 Power Query Online 中的 CSV 檔案 查詢時,您先前對移除前四個數據列所做的變更,並使用第一個數據列做為標頭不會套用至數據表。 在 Power Query Online 中,從 [首頁 ] 標籤中選取 [重新整理]。重新整理畫面後,會顯示相同的錯誤訊息。

此錯誤背後的原因是,查詢先前的狀態是在對名為 Column1的欄位執行作業。 但由於在 轉換範例檔案 查詢中所做的變更,該欄位已不存在。 詳細資訊:處理Power Query中的錯誤

具有步驟層級錯誤的輸出查詢螢幕快照。

您可以從 [套用的步驟] 窗格移除查詢的最後一個步驟,方法是選取步驟名稱左側的 X 刪除圖示。 刪除此步驟之後,您的查詢會顯示正確的結果。

沒有錯誤步驟的合併檔案螢幕快照。

不過,請注意,任何衍生自檔案的數據行(日期、國家/地區、單位、營收)都沒有指派給他們的特定數據類型。 使用下表,將正確的數據類型指派給每個數據行。

數據行名稱 數據類型
日期 日期
國家 文字
單位 整數
收入 貨幣

定義每個資料行的數據類型之後,您就可以載入資料表。

最終範例合併數據表的螢幕快照。

注意

若要瞭解如何定義或變更資料列資料類型,請移至 資料類型

驗證

若要驗證合併所有檔案,您可以在 Source.Name 數據行標題上選取篩選圖示,以顯示合併之檔案的所有名稱。 如果您收到警告「清單可能不完整」,請在功能表底部選取 載入更多,以顯示欄中更多可用的值。

篩選對話框的螢幕快照,其中包含合併的檔案不完整清單。

選取 [載入更多之後,會顯示所有可用的檔名。

篩選對話框的螢幕快照,其中包含合併之檔案的完整清單。