閱讀英文

共用方式為


合併 CSV 檔案

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

提示

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

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

關於使用的範例檔案

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

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

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

數據列數目會因檔案而異,但前四個數據列中所有檔案都有標頭區段。 它們具有第五個數據列的數據行標頭,而數據表的數據會從第六個數據列開始,並繼續進行所有後續的數據列。

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

範例最終合併數據表。

數據表預覽

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

檔案系統檢視的數據表預覽。

在此範例中,選取 [ 合併]。

注意

在不同的情況下,您可以選取 [轉換數據 ] 來進一步篩選和轉換您的數據,然後再合併檔案。 只有在您確定資料夾只包含您想要合併的檔案時,才建議選取 [合併 ]。

[合併檔案] 對話框

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

[合併檔案] 對話框。

注意

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

在此範例中,保留所有預設設定 (範例檔案設定為 First 檔案,以及 [檔案來源]、[分隔符] 和 [數據類型偵測] 的預設值)。

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

輸出查詢

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

沒有其他轉換的合併檔案輸出查詢。

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

修改轉換範例檔案查詢

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

表格顯示 2019 年 4 月的數據行,包括前四個數據列的標頭區段,以及第五個數據列的標題。

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

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

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

    拿掉資料表功能表上的前列。

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

    拿掉頂端資料列對話框。

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

    已移除數據列的範例查詢。

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

    使用第一個數據列作為標頭圖示。

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

    範例數據表升級標頭。

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

修訂輸出查詢

當您回到 CSV 檔案 查詢時,您會發現最後一個步驟會提供錯誤,指出找不到數據表的數據行 'Column1'。此錯誤背後的原因是查詢先前的狀態正在對名為 Column1 的數據行執行作業。 但由於對轉換範例檔案查詢所做的變更,此數據行已不存在。 詳細信息: 處理 Power Query 中的錯誤

輸出查詢與步驟層級錯誤。

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

合併檔案而不執行錯誤步驟。

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

資料行名稱 資料類型
Date Date
Country Text
單位 整數
營收 貨幣

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

範例最終合併數據表。

注意

若要瞭解如何定義或變更數據行數據類型,請移至 [數據類型]。

驗證

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

已合併之檔案的不完整清單。

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

已合併之檔案的完整清單。