微軟 excel 教學
Excel不同分頁抓資料:6種方法完整教學與公式範例【2026最新】
文章目錄
Excel 不同分頁抓資料,最常用的方式是在儲存格輸入 =工作表名稱!儲存格位址,即可即時引用另一張工作表的數據。除了直接引用,還有 VLOOKUP、XLOOKUP、INDIRECT、INDEX+MATCH、3D 參照等五種進階方法,適用於不同的跨分頁資料整合情境。本篇教學將逐一示範每種方法的公式寫法、適用場景與常見錯誤排查,讓你根據實際需求選出最有效率的做法。
延伸閱讀:Excel不同工作表資料同步秘訣:跨表輸入數據的終極指南
Excel 跨分頁引用的基本語法
跨分頁引用的核心語法是 =工作表名稱!儲存格位址,Excel 會即時從指定分頁抓取對應的值。這是所有跨分頁操作的基礎,無論後續使用哪種函數,都建立在這個語法之上。
操作步驟如下:
- 在目標分頁選取要放結果的儲存格。
- 輸入等號
=。 - 用滑鼠點擊來源分頁的標籤,再點選要引用的儲存格。
- 按下 Enter,公式自動產生,例如
=Sheet1!A1。
如果工作表名稱含有空格或特殊字元,必須用單引號包住名稱。例如引用「部門 A」分頁的 B2 儲存格,公式寫成 ='部門 A'!B2。
| 情境 | 公式範例 | 說明 |
|---|---|---|
| 同檔案、標準名稱 | =Sheet1!A1 |
直接引用,最基本寫法 |
| 同檔案、名稱含空格 | ='部門 A'!B2 |
單引號包住工作表名稱 |
| 不同檔案 | ='[data.xlsx]Sheet2'!A1 |
方括號包住檔案名稱,來源檔需開啟 |
| 不同檔案(已關閉) | ='C:\資料\[data.xlsx]Sheet2'!A1 |
需加完整路徑,資料不會即時更新 |
方法一:VLOOKUP 跨分頁查找
VLOOKUP(Vertical Lookup)是根據關鍵值,在另一分頁的表格中由左往右查找並回傳對應欄位資料的函數。它是 Excel 2007 以來最廣泛使用的跨分頁查找工具,適合「有明確對照鍵」的批次資料比對。
公式結構:
=VLOOKUP(查找值, 來源分頁!範圍, 欄位序號, FALSE)
實際範例:假設「訂單」分頁的 A 欄是產品編號,你要從「產品資料」分頁抓取對應的產品名稱(位於第 2 欄):
=VLOOKUP(A2, 產品資料!$A$1:$C$500, 2, FALSE)
- A2:當前分頁的查找值(產品編號)。
- 產品資料!$A$1:$C$500:來源分頁的查找範圍,用絕對參照
$鎖定,避免拖曳時範圍偏移。 - 2:回傳查找範圍中第 2 欄的值。
- FALSE:精確比對,找不到會回傳
#N/A。
實戰經驗:我在整理跨部門月報時,最常踩的坑是忘記鎖定範圍——拖曳公式到第 50 列時,查找範圍已經偏移了 49 列,結果全部錯誤。養成習慣:VLOOKUP 的第二個參數一律加
$符號鎖定。另外,查找值的格式務必統一,「001」(文字)和 1(數字)在精確比對下視為不同值,這是#N/A最常見的原因。
方法二:XLOOKUP 取代 VLOOKUP 的新選擇
XLOOKUP 是 Microsoft 365 與 Excel 2021 以上版本提供的新一代查找函數,語法更直覺,且支援向左查找,解決了 VLOOKUP 只能向右查找的限制。根據 Microsoft 官方文件(2023 年更新),XLOOKUP 已被推薦作為 VLOOKUP 的替代方案。
公式結構:
=XLOOKUP(查找值, 查找範圍, 回傳範圍, [找不到時的值], [比對模式], [搜尋模式])
實際範例:同樣從「產品資料」分頁抓取產品名稱:
=XLOOKUP(A2, 產品資料!$A:$A, 產品資料!$B:$B, "查無資料")
| 比較項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 查找方向 | 僅能向右 | 向左、向右皆可 |
| 找不到時的預設值 | 回傳 #N/A | 可自訂預設值(第 4 參數) |
| 語法複雜度 | 需指定欄位序號 | 直接指定回傳範圍,更直覺 |
| 效能 | 整欄搜尋時較慢 | 支援二分搜尋,大資料集更快 |
| 版本支援 | Excel 2007+ | Microsoft 365 / Excel 2021+ |
如果你的公司仍使用 Excel 2016 或更早版本,只能使用 VLOOKUP;若已升級至 Microsoft 365,建議優先使用 XLOOKUP,語法更清晰且不易出錯。
方法三:INDIRECT 動態切換分頁
INDIRECT 函數能將文字字串轉換為儲存格參照,讓你透過變更儲存格的文字內容,動態切換要抓取的分頁。這在製作「下拉選單切換報表」時特別實用。
公式結構:
=INDIRECT("'" & A1 & "'!B2")
其中 A1 儲存格放的是分頁名稱(例如「一月」「二月」),公式會自動抓取對應分頁的 B2 值。搭配資料驗證(Data Validation)製作下拉選單,使用者只要切換選項,報表數據就會即時更新。
INDIRECT 的限制與注意事項:
- 僅限同一檔案:INDIRECT 無法跨檔案引用,這是與直接引用最大的差異。
- 效能影響:INDIRECT 屬於揮發性函數(Volatile Function),每次工作表重新計算時都會重算,在大型檔案中大量使用(超過 500 個)會明顯拖慢速度。
- 分頁名稱必須完全正確:拼錯一個字就會回傳
#REF!,建議搭配資料驗證限制輸入值。
方法四:INDEX + MATCH 組合查找
INDEX + MATCH 是進階使用者最推薦的查找組合,比 VLOOKUP 更靈活——不受欄位順序限制,且查找效能更佳。根據 Excel MVP 社群的測試,在超過 10 萬列的資料集中,INDEX+MATCH 的運算速度比 VLOOKUP 快約 30%。
公式結構:
=INDEX(來源分頁!回傳範圍, MATCH(查找值, 來源分頁!查找範圍, 0))
實際範例:從「員工資料」分頁根據姓名(C 欄)查找員工編號(A 欄,位於姓名左側):
=INDEX(員工資料!$A:$A, MATCH(B2, 員工資料!$C:$C, 0))
這個查找方向是「向左」,VLOOKUP 做不到,但 INDEX+MATCH 和 XLOOKUP 都能處理。
- INDEX(範圍, 列號):回傳指定範圍中第 N 列的值。
- MATCH(查找值, 範圍, 0):回傳查找值在範圍中的位置(列號),0 代表精確比對。
- 兩者組合後,MATCH 找到位置,INDEX 回傳該位置的值。
方法五:3D 參照跨多分頁彙總
3D 參照(3D Reference)能一次加總多張結構相同的工作表中同一儲存格的值,是製作月報、季報、部門彙總的最快方法。例如加總「一月」到「十二月」共 12 張分頁的 C5 儲存格:
=SUM(一月:十二月!C5)
使用 3D 參照的前提條件:
- 所有被參照的分頁必須結構完全相同(同一個儲存格位址放同類型的資料)。
- 分頁必須連續排列在工作表標籤上(中間不能插入其他分頁)。
- 支援的函數包括:SUM、AVERAGE、COUNT、MAX、MIN 等聚合函數。
| 需求 | 公式 | 說明 |
|---|---|---|
| 加總 12 個月的 C5 | =SUM(一月:十二月!C5) |
一次加總 12 張分頁 |
| 計算平均值 | =AVERAGE(一月:十二月!C5) |
12 個月的 C5 平均 |
| 找最大值 | =MAX(部門A:部門D!B10) |
4 個部門中 B10 的最大值 |
| 計算非空儲存格數 | =COUNTA(Q1:Q4!A1) |
4 季中 A1 有填值的數量 |
六種方法完整比較與選擇建議
沒有「最好」的方法,只有「最適合你情境」的方法——根據資料量、Excel 版本、是否需要動態切換來決定。以下整理六種跨分頁抓資料方法的完整比較:
| 方法 | 難度 | 查找方向 | 動態切換 | 跨檔案 | 版本需求 | 最佳適用場景 |
|---|---|---|---|---|---|---|
| 直接引用 | 低 | — | 否 | 是 | 所有版本 | 少量固定儲存格 |
| VLOOKUP | 中 | 僅向右 | 否 | 是 | Excel 2007+ | 批次對照、資料比對 |
| XLOOKUP | 中 | 雙向 | 否 | 是 | 365 / 2021+ | 取代 VLOOKUP 的首選 |
| INDIRECT | 中高 | — | 是 | 否 | 所有版本 | 下拉選單切換報表 |
| INDEX+MATCH | 高 | 雙向 | 否 | 是 | 所有版本 | 大資料集、進階查找 |
| 3D 參照 | 低 | — | 否 | 否 | 所有版本 | 多分頁同格位彙總 |
快速選擇指南:
- 只抓 1-2 個固定值 → 直接引用
- 根據關鍵字批次比對 → VLOOKUP(舊版)或 XLOOKUP(新版)
- 需要向左查找或大資料集 → INDEX+MATCH
- 報表需動態切換分頁 → INDIRECT
- 多張結構相同分頁要加總 → 3D 參照
常見錯誤代碼與排查方法
跨分頁公式最常遇到的三個錯誤是 #REF!、#N/A 和 #VALUE!,各有不同的成因與修復方式。以下整理完整的錯誤排查對照表:
| 錯誤代碼 | 常見原因 | 排查步驟 | 修復方法 |
|---|---|---|---|
#REF! |
來源分頁被刪除或更名 | 檢查公式中的工作表名稱是否存在 | 修正分頁名稱,或重新建立引用 |
#N/A |
VLOOKUP/XLOOKUP 找不到對應值 | 確認查找值的格式(文字 vs 數字) | 統一格式,或用 IFERROR 包裹公式 |
#VALUE! |
公式參數型態不符 | 逐一檢查各參數是否為預期型態 | 用 VALUE() 或 TEXT() 轉換格式 |
| 值為 0 但預期有資料 | 來源儲存格為空白 | 切到來源分頁確認該格是否真的有值 | 用 IF 判斷空值:=IF(Sheet1!A1="","",Sheet1!A1) |
處理 #N/A 錯誤的實用公式:
=IFERROR(VLOOKUP(A2, 產品資料!$A:$C, 2, FALSE), "查無資料")
IFERROR 會在公式出錯時回傳你指定的替代值,避免報表上出現醜陋的錯誤代碼。截至 2026 年,這仍是 Excel 社群中處理查找錯誤最推薦的做法。
Excel 跨分頁抓資料實戰操作指引
以下是從零開始建立跨分頁資料整合的完整步驟,適用於最常見的「多部門月報彙總」情境。
- 統一各分頁結構:確保所有來源分頁的欄位順序、標題列位置完全一致。例如 A 欄放「項目名稱」、B 欄放「金額」、C 欄放「備註」,每張分頁都相同。
- 建立彙總分頁:新增一張「總表」工作表,在 A1 輸入標題列,從 A2 開始放各部門的資料。
- 選擇適合的抓取方法:若只需加總同一格位,用 3D 參照(
=SUM(部門A:部門D!B2));若需根據關鍵字比對,用 VLOOKUP 或 XLOOKUP。 - 鎖定參照範圍:所有跨分頁公式的範圍參數,一律加上
$符號(如$A$1:$C$500),防止拖曳時範圍偏移導致錯誤。 - 加上錯誤處理:用
IFERROR()包裹查找公式,指定找不到時顯示的替代文字(如「查無資料」或空白"")。 - 測試與驗證:隨機抽查 3-5 筆資料,手動切到來源分頁核對數值是否正確。特別注意格式差異(日期格式、數字 vs 文字)。
- 儲存並記錄:完成後另存新檔,並在彙總分頁加註說明(資料來源分頁、更新日期),方便日後維護。
Q1:VLOOKUP 回傳 #N/A,但資料明明存在?
最常見的原因是格式不一致:查找值是文字格式(如「001」),但來源資料是數字格式(如 1)。解決方法是用 VALUE() 將文字轉數字,或用 TEXT() 將數字轉文字,確保兩端格式統一。也可以用 TRIM() 去除多餘空格。
Q2:INDIRECT 可以引用其他 Excel 檔案的資料嗎?
不行。INDIRECT 只能引用同一工作簿內的分頁。如果需要跨檔案動態引用,建議改用 Power Query(取得資料 > 從活頁簿),或是用直接引用公式 ='[檔案名.xlsx]工作表'!A1。
Q3:Excel 2016 可以用 XLOOKUP 嗎?
不行。XLOOKUP 僅支援 Microsoft 365 訂閱版和 Excel 2021 以上的買斷版。Excel 2016 使用者建議改用 INDEX+MATCH 組合,功能幾乎等效,且所有 Excel 版本都支援。
Q4:3D 參照的分頁順序被打亂會怎樣?
3D 參照依據分頁標籤的排列順序運作。如果你在「一月」和「十二月」之間插入了一張新分頁,該分頁的資料也會被納入計算。反之,若移除某張分頁,該分頁的資料就會被排除。建議使用 3D 參照時,鎖定好分頁順序,不要隨意搬移。
Q5:大量跨分頁公式導致檔案很慢怎麼辦?
三個加速技巧:(1)將計算模式改為「手動」(公式 > 計算選項 > 手動),需要時再按 F9 重新計算;(2)減少 INDIRECT 和其他揮發性函數的使用量;(3)考慮用 Power Query 取代公式,將資料「載入」而非「即時運算」,檔案會明顯變快。根據 Microsoft 官方建議,超過 10 萬列的資料整合應優先使用 Power Query。
Q6:如何一次從多張分頁批次抓取資料到總表?
最有效率的方式是使用 Power Query(取得資料 > 從活頁簿 > 選擇多張工作表)。Power Query 會自動合併所有選定分頁的資料,並在來源更新時一鍵重新整理。若不想用 Power Query,也可以用 VBA 巨集迴圈遍歷各分頁,但維護成本較高。
Q7:跨分頁引用時,來源分頁被刪除怎麼補救?
一旦來源分頁被刪除,所有引用該分頁的公式都會變成 #REF! 錯誤,且無法自動復原。補救步驟:(1)立即按 Ctrl+Z 嘗試復原刪除;(2)若已儲存,從備份檔或自動回復檔中找回;(3)未來建議開啟「保護工作表」功能,防止誤刪重要分頁。