合併兩份 Excel 工作表是將儲存在兩個不同工作表上的資料結合或關聯起來,以便能夠一起分析,通常是透過 VLOOKUP、XLOOKUP、INDEX/MATCH 或 Power Query 的合併查詢,在共用的欄位上比對資料列。「合併」的實際意義因使用者而異:有些人想把兩個分頁的資料列堆疊成一張主表,有些人想用查表的方式從某張工作表抓取一整欄的值到另一張工作表,也有些人只是想把來自不同人的兩個檔案合併在一起。這些工作各自有不同的正確做法,選錯方法是 Excel 工作流程日後出狀況最常見的原因之一。一個相關但不同的需求是「分割」,也就是當一個活頁簿中含有多個獨立的分頁,而這些分頁應該分別以獨立檔案的形式發送給不同的接收者。這個操作在口語上聽起來很像「合併」,但執行方向恰好相反。Split Excel Sheets 就是處理這種情況的工具:它能把一個本機 .xlsx 檔案中的各個工作表,各自轉成僅含資料的 .xlsx 檔案,並打包成一個 ZIP 下載檔,這樣每個分頁都能在任何合併作業開始之前先被檢視、分享或預先整理。

how to join two excel sheets
如何在 Excel 中合併兩份工作表:方法比較

「合併」在 Excel 中的真正含義

Excel 沒有一個內建、單一稱為「join」的動詞。搜尋這個詞的讀者,通常指的是以下三種情況中的其中一種,而正確的工具取決於手上的資料符合哪一種。

  • 把兩個分頁的資料列堆疊成一張主表,資料庫使用者稱之為 union 或 append。
  • 透過共用鍵值欄位比對資料列,用另一個表格的欄位來豐富其中一個表格,這就是關聯式 join。
  • 當符合條件時,從另一張工作表抓取單一值,這就是查表 (lookup)。

關聯式 join 是資料庫中這個詞的真正意思。Excel 本身並未原生提供這個功能,這正是 Power Query 存在的原因。查表模式(VLOOKUP、XLOOKUP、INDEX/MATCH)每次比對只會回傳單一值或單一資料列;它們並不會像 SQL 那樣產生一張寬的、合併過的資料集。把這個差別記在心裡,可以避免大多數「我的 join 壞掉了」的抱怨,也能避免在該用合併查詢的地方誤用公式。

從兩份 Excel 工作表合併資料的常見方法

每種方法各有不同的最佳使用情境。下表整理出四種最常見的選擇,加上人工方式的備案,並依據各自能解決的問題類型排序。

方法 最適合 技術程度 來源變更時是否更新 可用於不同檔案
VLOOKUP / HLOOKUP 在熟悉的檔案中做快速查表 初學者 否,必須重新輸入公式 可以,需使用外部參照
XLOOKUP 具彈性比對方向的現代化查表 中階 可以
INDEX + MATCH 鍵值欄位不在最左側的查表 中階 可以
Power Query 合併 大型資料、可重複執行的合併、多鍵值合併 中階至高階 可以,按下「重新整理」按鈕即可 可以
手動複製與貼上 一次性的小型工作 初學者 可以

對於一次性的小型工作,手動複製與貼上是最快速也最容易驗證的做法。對於任何會重複使用的資料集,Power Query 是最佳選擇,因為它會儲存合併的步驟配方,無論來源何時變動都能重新執行。對於使用者會在儲存格中輸入資料、並期待即時回應的互動式工作表,XLOOKUP 或 INDEX/MATCH 是最合適的工具。VLOOKUP 至今仍被廣泛教學,但對於新工作,XLOOKUP 已超越它,因為它能處理找不到的比對結果與反向查表,不會落入欄位順序的陷阱。

什麼時候「分割」比「合併」更合適

有時候,搜尋「如何合併兩份 Excel 工作表」其實隱藏著另一個問題。從報表、廠商或同事那邊拿回來的活頁簿,常常包含好幾個彼此獨立的分頁,這些分頁根本不該被合併;它們應該被分開,分別送給擁有這些資料的人或系統。如果把它們合併起來,反而會遺失「哪一筆紀錄屬於哪個情境」的資訊,同時也會衍生出新的隱私問題,因為兩個團隊的資料現在會放在同一個檔案裡。

分割也可以作為合併前的一個前置步驟。如果多工作表的活頁簿中,某個分頁的資料很髒、或是多了額外的標題列,把它單獨拉出來變成自己的檔案,就能在與其他分頁合併之前,更輕鬆地清理、檢查或替換它。一個在本機執行的有限度分割工具,可以直接產生出這些檔案,而無需將活頁簿上傳到任何地方,這在資料不能離開裝置的情況下特別重要。

Split Excel Sheets 就是為了這個合併前的分離步驟而設計的。它會讀取單一本機 .xlsx 檔案,為其中每一個工作表輸出一個僅含資料的 .xlsx 檔案,並把結果打包成一個 ZIP,直接從瀏覽器下載。資料完全不會離開裝置;來源檔案不會被修改、保留,或傳送到任何遠端服務。

在本地將活頁簿分割成個別檔案

分割步驟在瀏覽器的 Split Excel Sheets 頁面中執行。整個流程都在當前頁面中完成,不會出現上傳步驟,因為這個檔案從未離開過本機。從該工具的文件化規格中擷取出的具體操作步驟如下:

  1. 選擇一個大小不超過 20 MB 的本機 .xlsx 活頁簿。
  2. 確認活頁簿中包含你想分開輸出的工作表。
  3. 建立 ZIP 檔、在本機解壓縮,並在目標應用程式中開啟其中一個產生的活頁簿進行檢查。

每個產生的檔名都使用一個兩位數字前綴,後接清理過的工作表名稱,這樣在解開壓縮檔後,仍能看出原本的分頁順序,而且即使有幾個分頁剛好名稱相近,也不會互相覆寫。對於名稱異常或空白的分頁,則會使用一個安全的預設值,而不會產生不安全的壓縮檔路徑。由於每個輸出檔案都只根據儲存的儲存格值產生,在目標試算表程式中開啟任何一個檔案時,都會呈現出來源分頁實際內容的、可預期的、不含格式的檢視結果。

限制與 Split Excel Sheets 無法做的事

輸出規格刻意設計得很精簡,了解這一點能避免意外。每個產生的檔案都是一份僅含資料的工作表匯出,內容完全依據來源活頁簿中儲存的儲存格值。這個工具不會計算公式、不會執行巨集、不會開啟超連結、不會追蹤外部連線,也不會執行內嵌內容。它同樣也不保留下列項目:公式、圖表、影像、註解、格式設定、條件式規則、欄寬、合併儲存格的版面、命名範圍、篩選、活頁簿設定、列印版面、資料驗證、保護設定,或隱藏工作表的狀態。如果原始活頁簿中有任何上述特徵具有意義,請把來源檔案本身當作正式的資料來源,並使用專為保留完整活頁簿結構而設計的軟體。

輸入規格同樣有上限。來源檔案必須是非空的傳統 .xlsx 檔案,大小不超過 20 MB,壓縮檔項目最多 2,000 個,宣告的解壓縮後資料大小不得超過 50 MB。活頁簿最多可有 50 個工作表,而每個被選取的工作表都受限於讀取器的可定址儲存格上限。不支援的 Zip64 封裝、加密檔案、多片磁碟封存、舊版 .xls、啟用巨集的活頁簿、格式錯誤的封裝,或超出限制的檔案,都會被直接以錯誤訊息拒絕,而不是悄悄略過或部分封存。分割作業絕對不會回傳部分結果,所以輸出中如果有分頁不見了,就一定代表工具整個拒絕處理這個檔案。

使用前先驗證輸出

一個簡短的驗證流程可以在檔案往下游傳送之前抓出大多數問題。將下載的 ZIP 解壓縮到一個已知的資料夾,然後在將接收這個檔案的應用程式中開啟其中一個產生的活頁簿。隨機挑選幾個儲存格的值,與原始活頁簿中相同位置的儲存格進行比對,以確認儲存的資料符合使用者的需求。檢查 ZIP 內的檔案數量是否與來源活頁簿中的工作表數量一致,並確認兩位數字的前綴保留了原本的分頁順序。如果工作流程中有任何視覺或結構上的特性很重要,請保留原始活頁簿,並規劃一條不同的匯出路徑,因為僅含資料的分割無法還原這些特性。

如果真正的任務是把兩個分頁的資料合併成一張寬表格,那麼 Power Query 的合併查詢是最具可重複性的 Excel 原生做法,XLOOKUP 則是最符合人體工學的公式做法。如果真正的任務恰好相反,是把多個分頁的活頁簿拆成各自獨立的檔案,讓不同的人能各自使用,那麼 Split Excel Sheets 可以從單一本機檔案產出僅含資料的活頁簿,並打包成有限範圍的 ZIP,過程中完全不需要上傳任何東西;而這個本機分割的步驟,往往在任何合併邏輯碰觸到資料之前,是一個很有用的前置作業。