共用方式為


合併 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 中,請選擇 Combine & Transform Data

注意

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

[合併檔案] 對話框

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

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

注意

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

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

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

輸出查詢

Combine files對話框中選取Transform data後,你會回到最初從連接到本地資料夾時建立的查詢的 Power Query 編輯器。 輸出查詢現在包含最左邊數據行中的來源檔名,以及其餘數據行中每個來源檔案的數據。

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

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

修改轉換範例檔案查詢

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

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

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

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

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

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

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

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

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

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

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

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

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

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

完成此操作後,Power Query 預設會嘗試自動偵測欄位的資料型態,並新增一個新的 Changed column types步驟。

修訂輸出查詢

當你回到桌面的 CSV FilesPower Query查詢時,最後一步會跳出錯誤訊息:「資料表的欄位『Column1』未被找到」。當你回到 Power Query Online 的 CSV Files查詢時, 你之前移除前四列並用第一排作為標題的修改,並沒有套用到表格。 在 Power Query Online 中,從 Home 分頁中選擇 Refresh。螢幕重新整理後,仍會顯示相同的錯誤訊息。

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

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

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

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

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

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

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

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

注意

想了解如何定義或更改欄位資料型別,請前往 Power Query 中的 Data types。

驗證

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

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

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

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