合併兩個 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。Excel 並未原生提供這個操作,這就是 Power Query 存在的原因。查詢模式(VLOOKUP、XLOOKUP、INDEX/MATCH)每次比對只回傳單一值或單一資料列;它們無法像 SQL 那樣產生寬格式的合併資料集。記住這個區別可以避免大多數「我的合併壞掉了」的抱怨,也能避免在應該使用合併查詢的地方誤用公式。

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

每種方法都有其最佳適用情境。下表摘要說明四種最常見的選擇加上人工備援方案,依據各自能解決的問題類型排序。

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

對於一次性的小型工作,手動複製與貼上是速度最快且最容易驗證的方法。對於任何會重複使用的資料集,Power Query 是最佳選擇,因為它會儲存合併的設定,並能在來源變更時重新執行。對於使用者會在儲存格中輸入資料並期待即時回應的互動式工作表,XLOOKUP 或 INDEX/MATCH 是合適的選擇。VLOOKUP 仍被廣泛教學,但對於新工作而言,XLOOKUP 已取代它,因為 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,且完全無需上傳任何內容,而這個本地分割通常是任何合併邏輯接觸到資料前實用的第一步。

相關閱讀:如何在 Oracle 中產生 UUID:函數比較。

相關閱讀:VS Code 鍵盤快速鍵:依平台比較預設值。