你的分公司報告包含同類銷售記錄,但表頭從不同列開始,欄位也有不同名稱。你需要一張不遺失記錄也不更改總計的表格。下方是一個已錄製的 RowSpeak 工作流程,將三份不相符的 Excel 檔案合併成 445 筆已核對的銷售記錄。你可以複製提示、觀看合併過程,並下載結果自行檢查。
重點摘要:
- 將表頭位置與欄位名稱不同的檔案中的銷售記錄,合併成一張表格。
- 使用可複製的提示設定日期規則、保留缺失值,並要求來源詳細資料以供檢查。
- 查看錄製的三檔案結果:445 筆記錄、2,944 單位、10,989,500 收入,以原始貨幣計。
- 在報告中使用合併檔案前,依來源檢查記錄數與總計。
真正的問題不是合併
技術上,合併是簡單的部分。Excel、指令碼和免費工具多年來都能堆疊多個檔案的列。真正讓你每週工作變慢的,是合併前發生的事:檔案不相符。
本週其中一個檔案的表頭在第 1 列。另一個的表頭在第 4 列,因為有人在表格上方貼上標題和日期。第三個將同一欄拼成「Rev」,其他檔案則寫「Revenue」。如果你曾搜尋這方面的協助,可能看過做同樣工作的人發表像這樣的貼文:
- 一名營運人員描述每週需要合併 100 多個 Excel 檔案,擔心過程中遺失格式或資料(r/excel)。
- 另一人每天透過複製貼上合併 50 多個檔案,因為表頭不是從最上方開始,且資料上下有隨機資訊(r/excel)。
- 一名非程式設計師嘗試用 Python 合併不一致的活頁簿批次,卻卡在文件中(r/learnpython)。
- 有人寫了巨集從許多檔案提取特定儲存格,但它是逐格記錄且執行太慢(r/excel)。
當真實商業檔案來自不同人員、系統或月份時,它們就是這個樣子。合併很簡單,真正的任務是處理不一致。
選擇合併檔案的方式
Excel 工具與指令碼可以合併檔案。真正有用的問題是:你的特定差異需要多少設定,以及你要如何檢查結果。
選項 1:購買合併工具
當你的檔案共用相同版面配置時,專用合併工具速度很快。它們通常能一鍵堆疊多份活頁簿的列,而對於乾淨、完全相同的匯出檔,這正是你想要的。
請檢查你選擇的工具是否能偵測第一列以下的表頭、將不同名稱對應到同一欄,並回報略過的列。若工具只能堆疊相符的版面配置,就需要先做好準備,才能正確合併這些匯出檔。
選項 2:Power Query
當你的檔案一致時,Power Query 是實用的選項。如果每週匯出檔都來自相同系統、具有相同欄位,建立一次查詢並重新整理就是良好的工作流程,而且除了你已擁有的 Excel 之外不需額外成本。
當版面配置不同時,你的查詢需要針對這些差異制定規則:
- 某些檔案的表頭位於第 2 列或第 5 列。查詢指向第 1 列,因此這些欄位會位移或消失。
- 重新命名的欄位。某個月的匯出檔中,「Region」變成「Area」,查詢會將它視為新的、不相關的欄位。
- 資料中間出現總計列。它會像一般列一樣流入合併表格,你的合計就會悄悄出錯。
Power Query 可以透過適當的轉換與欄位對應規則來處理這些差異。當匯出檔變更時,這些規則需要維護,因此請考慮由誰負責這套設定。
選項 3:撰寫 VBA 或 Python
巨集與指令碼幾乎能處理任何事,包括雜亂的檔案。但代價不同:你現在要負責程式碼。上面引述中的逐格巨集就是很好的例子。技術上它可行,但也慢到不實用,而且下一批檔案每次出現結構上的意外,就代表又要再編輯一次。卡在 Python 文件中的非程式設計師,則遇到同一取捨的另一面:這個做法可行,但只適合能維護它的人。
如果你喜歡寫指令碼,這是合理的做法。如果你的實際工作是營運或財務,而寫指令碼只是達成目的的手段,那麼你等於在本業之上還要維護軟體。
「雜亂」的具體意思是什麼
「雜亂檔案」不是模糊的抱怨,而是一份具體清單,你很可能認得其中大部分:
- 表頭不在第 1 列:標題、日期或空白帶位於真正表格上方。
- 資料上下有備註:「Prepared by」、「Confidential」或工作表內臨時加入的註解。
- 同一欄在每個檔案中有不同名稱:「Revenue」、「Rev」、「Sales Amount」。
- 合併儲存格:區域標籤橫跨三列,因此只有第一列帶有值。
- 數字與日期以文字儲存:「1,250」是文字、「2026/10/01」是字串,而總計會默默略過這兩者。
- 空白列將表格切成片段。
- 總計列不應計為資料,有時在底部,有時在中間。
如果其中三項以上符合你的每週檔案,那麼「合併檔案」這個說法一直掩蓋了真正的任務。真正的任務是:將不相符的檔案變成一張表格,讓每一列的意義都相同。這是不同的工作,需要不同的做法。當檔案已經在同一份活頁簿中,但值仍需要正規化時,另一套 資料清理工作流程 可以幫上忙。
用白話描述的方式
使用 RowSpeak 的 Excel AI 工作流程,上傳你的活頁簿,並描述哪些記錄應放入合併表格、哪些欄位意義相同,以及缺失值應如何處理。然後檢閱產生的表格及其檢查。
以銷售合併來說,要求每個原始銷售記錄一列。保留來源參照、要求依檔案提供總計,並告訴工具將不確定的值留空。這樣更容易在錯誤對應進入報告前就捕捉到。
錄製範例:三份不相符的銷售活頁簿
這個示範使用來自 GitHub 銷售合併專案 的三份公開分享 合成練習活頁簿。它們代表來自拉合爾、喀拉蚩與伊斯蘭瑪巴德的同類銷售明細。這是使用練習資料的產品示範,而非客戶案例研究。
下方錄影顯示原始檔案預覽、合併要求、RowSpeak 摘要,以及合併後活頁簿預覽。長度約 2 分 37 秒。
步驟 1:檢查來源檔案有何不同
三個檔案都包含銷售記錄,但單純複製貼上需要進行多項修正:
| 來源活頁簿 | 差異之處 | 銷售記錄 |
|---|---|---|
branch_lahore.xlsx |
表頭在第 4 列,位於標題、備註與空白列下方 | 140 |
branch_karachi.xlsx |
欄位名稱不同、日期為日/月/年,且價格如 Rs 5600 以文字儲存 |
160 |
branch_islamabad.xlsx |
欄位名稱不同、五個空白間隔列,以及缺少類別與單價 | 145 |
拉合爾:在備註下方找到表頭。 銷售欄位包括 ProductID、Units Sold 和 Total Sales。其上方文字不是銷售記錄。

喀拉蚩:配對名稱並正確讀取日期。 在這裡,Item_Code 與拉合爾的 ProductID 意義相同。Qty 對應 Units Sold,Revenue 對應 Total Sales。像 26/12/2025 這樣的日期必須讀作日/月/年。

伊斯蘭瑪巴德:保留不完整的銷售記錄。 第 6 列是空白,但第 5 列包含一筆缺少單價的有效銷售。這兩者需要不同處理:略過空白列,保留該筆銷售以供檢閱。

步驟 2:上傳三個檔案並描述合併方式
在 RowSpeak 中選取全部三個 .xlsx 檔案。此工作流程使用的提示說明了欄位配對、日期格式、缺失值規則,以及預期的檢閱摘要:
將這三份分公司銷售活頁簿合併成一張乾淨的表格,每個原始銷售記錄一列。
找出每個檔案中真正的表頭,略過標題、備註與完全空白的列。依意義配對欄位:Date / Sale_Date / TransactionDate;ProductID / Item_Code / SKU;ProductName / Item_Name / Product;Category / Cat;Units Sold / Qty / QtySold;Unit Price / Price(Rs) / UnitPrice;Total Sales / Revenue / LineTotal。
使用這些輸出欄位:Date、Branch、SKU、Product、Category、Quantity、Unit Price、Revenue、Source File、Source Sheet、Source Row。從檔名取得 Branch。將 SKU 保留為文字。將 Karachi 日期解析為 DD/MM/YYYY,所有日期顯示為 YYYY-MM-DD,並將帶有 Rs 前綴的價格轉為數字,不更改幣別。
保留所有銷售記錄,包括缺少欄位的記錄。將缺少的 Category 與 Unit Price 留空,並回報以供檢閱。不要猜測、填補、去除重複或重新計算原始 Revenue。
建立依來源檔案分組的摘要,顯示記錄數、總 Quantity、總 Revenue,以及缺少欄位計數。另外回報被排除的非資料列。將合併表格與檢閱摘要匯出至 combined_branch_sales.xlsx。
重要的指示是 保留所有銷售記錄。缺少類別不應讓真實銷售消失。要求工具保留既有收入,也能在標準化欄位的同時避免更改總計。
步驟 3:將結果與原始檔案比較
RowSpeak 傳回 445 筆銷售記錄 與依來源分組的摘要。下方螢幕擷取畫面來自錄影,且這些數字已獨立對照三個來源活頁簿與下載結果進行核對。

| 分公司 | 記錄數 | 總數量 | 收入,原始 Rs 金額 |
|---|---|---|---|
| 拉合爾 | 140 | 889 | 3,200,000 |
| 喀拉蚩 | 160 | 1,239 | 4,954,300 |
| 伊斯蘭瑪巴德 | 145 | 816 | 2,835,200 |
| 合計 | 445 | 2,944 | 10,989,500 |
列層級比較確認每筆來源銷售記錄都只出現一次,且在按要求轉換日期與價格後,其日期、分公司、SKU、產品、類別、數量、單價與收入都與來源相符。收入獲得保留,且未進行幣別轉換。
輸出也保留了 16 個缺少的類別與 27 個缺少的單價。這些影響 39 筆銷售記錄,因為有些記錄同時缺少兩個欄位。Review - Missing Fields 工作表會標出它們。Excluded Rows 工作表列出八個非資料列:拉合爾的兩個開頭列與一個空白列,加上伊斯蘭瑪巴德的五個空白列。
步驟 4:報告前先開啟匯出的活頁簿
合併表格使用一致的欄位,並包含來源工作表和來源列參照。錄影在 RowSpeak 的活頁簿預覽中顯示它:

下載錄影中的 Combined Branch Sales 活頁簿(.xlsx),檢查相同結果。先看 Summary by Source File,再開啟 Combined Sales,並抽幾列與原始檔案核對。在將表格視為完成前,請使用 Review - Missing Fields。
這份匯出檔中有一項細節要檢查:螢幕上的摘要顯示原始檔名,而活頁簿的 Source File 欄位包含系統檔名,例如 file-472e77ca-5ff0-4e.xlsx。在此範例中,請使用 Branch、Source Sheet 與 Source Row 追蹤記錄。如果你的交付要求原始檔名,請明確要求該對應關係,並在匯出檔中驗證。
這段錄影驗證了這次三檔案合併。它並未建立 100 檔案的上限,也未測試所有 Excel 版面配置,且這些來源檔案不含可測試移除小計列的小計列。
一旦你的合併表格通過檢閱,就用於 每月 CSV 報告工作流程,或將它轉成 儀表板,供需要分公司總計的同事使用。
何時應該直接用 Power Query
選擇既適合檔案,也適合日後維護流程者的方法。
當你的檔案每次都來自同一個系統、版面配置相同時,請使用 Power Query。每月匯出檔永遠有相同欄位、表頭在第 1 列,且沒有手動編輯,正是 Power Query 擅長處理的情況。建立一次查詢,每月重新整理即可。支援的 Excel 版本提供此功能,並可在新檔案到達時重新整理。
當匯出檔各不相同,而你偏好用文字描述規則時,值得試用白話工作流程。當你想在 Excel 內維護明確的轉換時,則值得設定 Power Query。無論哪種方式,使用結果前都要比較記錄數、總計與例外。
常見問題
可以處理多少檔案?
這裡的示範使用三份活頁簿。若批次更大,請檢查你帳戶目前的上傳限制,並先試一組具代表性的樣本。這段錄影並未驗證 100 個檔案的批次。
會變更我的原始檔案嗎?
不會。你的原始檔案保持不變。輸出是新的合併資料集或報告,可供你檢閱、匯出與分享。
CSV 和 PDF 檔案呢?
RowSpeak 支援 Excel、CSV 與 PDF 輸入。這段錄影只涵蓋 Excel。若為 PDF 表格,請先檢查擷取出的欄位與列,再與活頁簿資料合併。
每個月都會執行嗎?
下個月的檔案到達時,你可以重複使用提示。上傳新批次,檢查任何變更的表頭或格式,並檢閱新的總計。這裡顯示的工作流程由使用者執行;並未示範排程處理。
我要如何試用?
查看目前的 方案與可用用量。先從小型批次開始,並將結果與手動檢查比較,再擴大工作流程。
你的下一批檔案,準備好接受檢閱
將不相符的檔案變成一張表格。
在下一份分公司報告到期前,上傳三份具代表性的檔案。重複使用上方提示,並在分享結果前比較記錄數與收入總計。
保持原始檔案不變,並在報告中使用輸出前先檢閱。







