要在瀏覽器本機把 Excel 檔案合併成一份純資料的活頁簿,做法是選取 2 到 10 個 .xlsx 檔案(合計大小 20 MB 以內),選擇 Merge workbooks,接著在 Excel 中開啟下載後的檔案,並在需要清理的分頁上執行 Data > Remove Duplicates。Merge Excel Files 這個工具會把每一份來源工作表,都保留成一個獨立、清楚命名的分頁,絕不上傳你的資料、絕不修改原始檔案,也絕不建立雲端共用連結;不過,它會把每個工作表當成一張獨立的表格處理,而不是把相符的欄位疊在一起變成一張主表,也不會悄悄覆蓋掉重複的分頁名稱。逐列去除重複值是另外獨立的一個步驟,一旦合併後的活頁簿在你的機器上開啟,Excel 就能原生處理這件事。這兩個動作合在一起——本機瀏覽器合併,加上 Excel 內建的去重複功能——就涵蓋了「合併 Excel 檔案並移除重複值」這句話所隱含的完整任務,而且完全不需要把任何活頁簿送到遠端伺服器,也不需要把機密試算表交給任何第三方信任。

how to merge excel files and remove duplicates
how to merge excel files and remove duplicates

這裡所說的「合併 Excel 檔案」實際上代表什麼

當有人搜尋「merge Excel files(合併 Excel 檔案)」時,他們指的至少可能是三種不同的事。這句話可能是指把好幾個活頁簿收集成單一一個 .xlsx,讓團隊只需要寄送一個檔案;也可能是指把相符表格中的資料列疊加成一張更長的工作表;又或者是指把不同活頁簿中的幾張工作表,拉進一份合併後的活頁簿中方便檢閱。Merge Excel Files 採用的是第三種意義,而且只採用第三種意義:它會把獨立的工作表收集進單一一個 .xlsx 中,同時讓每份來源工作表維持完整、並清楚標示。它不會把某個分頁的資料列附加到另一個分頁上,不會對齊標題列,也不會試圖猜測哪些欄位彼此相關。

這種較窄的定義是刻意設計的。Team.xlsx 中的 Data 工作表,與 Quarter.xlsx 中另一份獨立的 Data 工作表,會變成兩個各自獨立、清楚標示的分頁,而不會悄悄互相覆蓋,也不會被硬塞進同一張令人困惑的工作表中。如果你真正的目標,是要把多個活頁簿中相符的資料列合併起來,正確的工具應該是資料庫的 join、一套 ETL 工作流程,或一個專為合併資料列而設計的工具,而不是活頁簿合併工具。先弄清楚你實際上需要哪一種意義,是第一步,因為後續的工作流程會依你的答案而完全不同。

為什麼本機瀏覽器工具適合這項任務

活頁簿裡經常包含薪資數字、客戶名單、內部預測,或其他不應該離開這台裝置的資料。一個完全在本機執行的瀏覽器工具,能省去一般會有的上傳步驟:沒有任何內容會被送到伺服器、不需要建立帳號、不會產生任何雲端共用連結,原始活頁簿也不會被原地修改。來源檔案會維持在磁碟上原本的位置,唯一新產生的東西,就是你瀏覽器以一般下載方式寫出的那份合併後的 .xlsx。

這在實務上很重要,因為另一種做法——在 Excel 中一份一份手動複製工作表,或使用某個會吃進檔案的網路服務——既慢、又容易出錯,還經常被 IT 政策封鎖。用本機合併工具,你可以把活頁簿留在筆電上,把它們丟進這個工具,然後在選好輸入檔並按下按鈕的時間內,就得到一份可供檢閱的單一檔案。同樣的關注點分離,也適用於去重複值這個步驟,這件事最好交給 Excel 自己處理,而不是交給一個無法判斷哪些欄位對你的業務有意義的遠端服務。

如何把 2 到 10 個 Excel 檔案合併成一份活頁簿

  1. 在瀏覽器中開啟 Merge Excel Files 頁面,並準備好你想合併的本機 .xlsx 活頁簿。確認你有 2 到 10 個檔案,且合計大小不超過 20 MB。
  2. 依你希望被考慮的順序選取這些活頁簿。選取順序很重要,因為最終產生的分頁名稱會依這個順序排列,而每個活頁簿中的工作表,也會依它們原本的順序出現在合併後的檔案中。
  3. 確認每份來源工作表都應該在合併後的活頁簿中維持成一個獨立的純資料分頁。沒有任何選項可以把相符的表格合併成一張工作表,此工具也不會試圖這麼做。
  4. 選擇 Merge workbooks。瀏覽器會在本機讀取每份工作表儲存的儲存格值,產生帶前綴、彼此不重複的分頁名稱,並寫出一份新的、有大小限制的純資料 .xlsx 檔案。
  5. 下載合併後的活頁簿,並在你的目標試算表應用程式中開啟一次。檢查帶前綴的工作表名稱、確認每個分頁對應到預期的來源工作表,並在分享此檔案之前,檢查儲存的值看起來是否正確。

每個分頁名稱的前綴,是由來源活頁簿與工作表名稱加上一個分隔符號組合而成的,因此 Q1.xlsx 中一個叫做「Sales」的工作表,會變成類似「Q1_Sales」的名稱。如果兩個產生出來的名稱會發生衝突,此工具會加上一個數字後綴,確保每個分頁都維持唯一。不安全的 Excel 工作表名稱字元會被移除,且每個名稱都會維持在 Excel 31 個字元的工作表名稱長度限制以內。輸出結果是一份乾淨的交接檔案,而不是活頁簿的完整複製品。

此工具不會做的事

Merge Excel Files 工具刻意在一個狹窄的契約範圍內運作,有好幾項能力是刻意排除在範圍之外的:

功能支援嗎?實際會發生什麼
把多份獨立活頁簿收集成一個 .xlsx支援每份來源工作表都會變成它自己、帶前綴名稱的分頁。
附加相符表格中的資料列不支援工作表維持各自獨立;不會有任何內容被疊加在一起。
跨活頁簿對齊標題列不支援標題列會完全維持在各自來源工作表中原本的樣子。
移除重複的資料列不支援下載後請使用 Excel 的 Data > Remove Duplicates。
核對公式或重新計算不支援快取儲存的值可能會以資料的形式出現;公式本身則不會被保留。
保留格式、圖表、註解不支援輸出結果刻意只保留資料。
轉換舊版 .xls 檔案不支援只接受傳統、未加密的 .xlsx 封裝格式。

這樣的範圍讓整個操作維持可預期。如果某份活頁簿帶有有意義的公式、條件式格式設定、圖表、圖片、註解、合併儲存格版面配置、已命名範圍、篩選、資料驗證、隱藏工作表狀態、列印設定、保護,或活頁簿中繼資料,請保留原始檔案。合併後的 .xlsx,是儲存值的乾淨複製品,而不是視覺或分析上的複製品。一個公式快取儲存的值,可能會以一般資料的樣貌出現,但公式本身,在下載後的活頁簿中並不是一份會被保留的計算契約。

合併後如何移除重複的資料列

逐列去除重複值這件事,存在於 Excel 內部,而不是存在於合併工具內部。一旦合併後的活頁簿開啟了,標準做法很直接:

  1. 點擊你想清理的工作表中的任意儲存格,讓 Excel 知道要檢查哪張表格。
  2. 開啟功能區上的 Data 分頁,並從 Data Tools 群組中選擇 Remove Duplicates。
  3. 在對話框中,如果判斷重複值時應該考慮每一欄,就保持 All columns 勾選;如果 Excel 在比對記錄時應該忽略某些欄位,就取消勾選那些欄位。
  4. 點擊 OK 確認。Excel 會回報移除了多少個重複值,以及還剩下多少個唯一值。

如果你想在正式執行前先預覽,可以先對這個分頁排序或篩選,讓重複的內容彼此相鄰,再對確認過的範圍執行 Remove Duplicates。若需要清理多個分頁,就對每一個需要清理的分頁重複這些步驟。此合併工具刻意不嘗試處理這個步驟,因為要正確做到這件事,取決於了解哪些欄位真正重要,而這個判斷應該屬於擁有這份資料的人,而不是一個沒有辦法分辨哪些欄位對業務攸關、哪些只是附帶欄位的通用工具。

需要知道的限制與相容性規則

瀏覽器會在本機讀取工作表儲存的值,並在擷取任何內容之前先驗證每個 .xlsx 封裝。開始之前值得記住的實際限制如下:

  • 每次合併兩到十個非空的活頁簿,合計大小不超過 20 MB。
  • 合併結果最多包含 50 張工作表,每一張都受限於 Excel 可定址儲存格的上限,產生出來的 .xlsx 上限為 20 MB。
  • 只接受傳統的單磁片 OOXML ZIP 封裝——每個來源檔案最多 2,000 個項目,且宣告的展開資料不超過 50 MB。
  • Zip64、加密、多磁片、格式錯誤、舊版 .xls、含巨集、超大,或超出限制的封裝,都會以錯誤中止,而不會產生部分合併的結果。

為求可靠使用,請先從一小組具代表性的檔案開始、下載合併後的檔案,並在目標試算表程式中開啟一次,以確認帶前綴的分頁名稱與儲存的值看起來正確。從那之後,Excel 端的 Remove Duplicates 指令,就能處理原始搜尋詞組的後半段——「and remove duplicates(並移除重複值)」——而完全不需要離開你的筆電。當需要對齊欄位或合併記錄時,請改用資料庫、ETL 工作流程,或一個專為合併資料列設計的工具,並且只要公式、圖表、註解或格式帶有意義,就請保留原始活頁簿。

若想深入了解,請參閱使用 Web Crypto 隨機性在本機產生 Nano ID

若想深入了解,請參閱如何把 Excel 工作表並排拆分成多個檔案