在日常工作或數據管理中,您是否經常需要將 Google Sheets 中多個不同分頁(工作表)的資料,手動複製貼上到一個總表中呢?這個過程不僅耗時,而且當來源資料更新時,您還得重複操作一次,非常麻煩。
今天,我們將介紹一個強大且一勞永逸的方法,利用 FILTER 函數與陣列常值 {} 語法,輕鬆建立一個「動態」的合併總表。任何來源工作表的變動,都會即時自動更新到總表中!
核心概念:認識兩個關鍵工具
在開始實作前,讓我們先了解這個方法背後的兩個主要功臣。
1. 陣列常值 (Array Literals) {}
在 Google Sheets 中,大括號 {} 可以讓我們手動建立一個陣列。它的分隔符號決定了資料的排列方式:
逗號 :將資料「水平」排列。
例如,在儲存格中輸入 = {1, 2},您會看到 1 和 2 分別顯示在左右相鄰的兩個儲存格中。
分號 :將資料「垂直」排列。
例如,輸入 = {1; 2},您會看到 1 和 2 分別顯示在上下相鄰的兩個儲存格中。
這次要合併工作表,我們需要的就是「分號
2. FILTER 函數
FILTER 函數可以根據您設定的條件,從一個範圍中篩選出符合條件的資料。它的基本語法是:
FILTER(範圍, 條件1, [條件2, ...])
在這次的應用中,我們主要會用它來抓取整個工作表的資料,並設定一個條件來排除空白列,例如:FILTER('工作表A'!A:C, '工作表A'!A:A <> ""),意思是「篩選出『工作表A』中 A 到 C 欄的資料,條件是 A 欄的內容不為空值」。
實作步驟:一步步建立合併總表
假設我們有三個銷售資料工作表:「員林店」、「台中店」和「網路」,我們想將它們合併到一個名為「總表」的新工作表中。
步驟一:篩選第一個工作表 (包含標題)
在「總表」的 A1 儲存格中,我們先使用 FILTER 函數抓取第一個工作表「員林店」的完整資料,包含標題列。
=FILTER('員林店'!A1:C, '員林店'!A1:A <> "")
這會將「員林店」所有非空的資料列都帶過來。
步驟二:使用陣列語法合併後續工作表
接下來,我們要將「台中店」和「網路」的資料垂直堆疊在下方。這裡就要用到陣列語法 {} 和分號 ;。
關鍵點: 為了避免重複出現標題列,我們從第二個工作表開始,篩選範圍要從第二列 (A2:C) 開始。
完整的公式如下:
={
FILTER('員林店'!A1:C, '員林店'!A1:A <> "");
FILTER('台中店'!A2:C, '台中店'!A2:A <> "");
FILTER('網路'!A2:C, '網路'!A2:A <> "")
}
公式解析:
最外層的 {...} 表示這是一個陣列公式。
FILTER('員林店'!A1:C, ...):抓取第一個表的資料(A1開始,含標題)。
;:垂直堆疊符號,告訴 Google Sheets 將下一個結果放在下方。
FILTER('台中店'!A2:C, ...):抓取第二個表的資料(A2開始,不含標題)。
;:再次垂直堆疊。
FILTER('網路'!A2:C, ...):抓取第三個表的資料(A2開始,不含標題)。
將此公式輸入到「總表」的 A1 儲存格並按下 Enter,您會看到所有工作表的資料都完美地合併在一起了!
此方法的優點
動態更新:當您在「員林店」、「台中店」或「網路」任何一個工作表中新增、刪除或修改資料時,「總表」會自動同步更新,無需任何手動操作。
效率極高:設定一次公式即可,未來不用再為合併資料而煩惱。
保持來源資料完整性:總表僅用於查閱與匯總,不會影響到各個來源工作表的原始資料。
範例檔案與參考資料
為了方便您練習,您可以直接點擊下方連結,建立一份您自己的範例檔案副本來操作。
下次需要合併多個工作表時,不妨試試這個強大的 FILTER + {} 組合,讓您的數據處理能力更上一層樓!
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。