在 Excel 中,VSTACK 函數能將多個陣列或範圍「垂直堆疊」在一起,並回傳新的動態陣列。它是 Excel 365 的動態陣列函數之一,適合用於 名單合併、報表整合、資料重組 等情境,常與 HSTACK、UNIQUE、SORT、FILTER 搭配使用。
🔹快速摘要(語法、用途、常見場景)
用途:將多個陣列垂直堆疊為單一陣列
語法:=VSTACK(array1, [array2], …)常見場景:名單合併、報表整合、資料重組、搭配 UNIQUE 去重、搭配 SORT 排序
一、VSTACK 函數語法與用途
=VSTACK(array1, [array2], …)
- array1, array2…:要堆疊的陣列或範圍,可為直排或橫排
- 回傳結果為垂直堆疊後的動態陣列
例如:
=VSTACK(A1:A3,B1:B3)
會將 A1:A3 與 B1:B3 垂直合併為單一清單。
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例
範例一:合併兩個名單
=VSTACK(A1:A5,C1:C5)
說明:將 A 欄與 C 欄名單垂直合併。
範例二:合併多個範圍
=VSTACK(A1:A3,B1:B3,D1:D3)
說明:將三個範圍垂直堆疊為單一清單。
範例三:合併橫排資料
=VSTACK(A1:D1,A2:D2)
說明:將兩列橫排資料垂直堆疊。
範例四:合併不同大小的範圍
=VSTACK(A1:A4,B1:B2)
說明:自動填補缺值,建立統一清單。
範例五:建立簡單報表
=VSTACK({"姓名","分數"},A1:B10)
說明:在報表前加上標題列。
🔸進階範例
範例六:搭配 UNIQUE 去重
=UNIQUE(VSTACK(A1:A10,B1:B10))
說明:合併兩個名單後去除重複值。
範例七:搭配 SORT 排序
=SORT(VSTACK(A1:A10,B1:B10))
說明:合併名單後排序。
範例八:搭配 FILTER 篩選後合併
=VSTACK(FILTER(A1:A10,B1:B10="有效"),FILTER(C1:C10,D1:D10="有效"))
說明:篩選「有效」資料後再合併。
範例九:搭配 HSTACK 建立矩陣
=HSTACK(VSTACK(A1:A3,B1:B3),VSTACK(C1:C3,D1:D3))
說明:同時垂直與水平堆疊,建立矩陣。
範例十:建立動態報表區塊
=VSTACK({"有效名單"},FILTER(A1:A100,B1:B100="有效"))
說明:在篩選結果前加上標題列。
三、常見問題解答(FAQ)
Q1:VSTACK 與 HSTACK 有何不同?
VSTACK 是垂直堆疊,HSTACK 是水平堆疊。
Q2:VSTACK 可以合併不同大小的範圍嗎?
可以,系統會自動填補缺值。
Q3:VSTACK 可以處理文字嗎?
可以,文字與數字皆可堆疊。
Q4:VSTACK 會改變原始資料嗎?
不會,它只回傳新的陣列。
Q5:VSTACK 是否支援舊版 Excel?
不支援,僅 Excel 365 可用。
四、注意事項與錯誤排除
- 若 array 為空,會回傳空陣列。
- 不同大小的範圍會自動填補缺值,需注意輸出格式。
- VSTACK 回傳的是動態陣列,需確保 Spill 區域有足夠空間。
- 在舊版 Excel 不支援 VSTACK,僅 Excel 365 可用。
- 若堆疊過多範圍,可能導致效能下降。
五、延伸技巧與相關函數
- HSTACK:水平堆疊,與 VSTACK 相對。
- UNIQUE:搭配 VSTACK 去重,建立唯一清單。
- SORT:搭配 VSTACK 排序,建立有序清單。
- FILTER:篩選後再用 VSTACK 合併。
- TOCOL/TOROW:壓縮後再用 VSTACK 重組。
六、結語與延伸閱讀推薦
VSTACK 是 Excel 中的垂直堆疊工具,能快速合併多個範圍,適合用於名單整理、報表設計與資料重組。若搭配 HSTACK、UNIQUE、SORT 等函數,能建立完整的「合併 → 去重 → 排序 →輸出」流程。

















