在 Excel 365 中,HSTACK 函數能將多個陣列或範圍「水平合併」成一個新的動態陣列。它是動態陣列家族的一員,適合用於橫向資料整合、報表設計、欄位拼接與動態輸出。
🔹快速摘要(語法、用途、常見場景)
- 用途:將多個陣列或範圍水平堆疊成一個新陣列
- 語法:
=HSTACK(陣列1, 陣列2, …) - 常見場景:橫向合併資料、欄位拼接、報表設計、動態輸出
一、HSTACK 函數語法與用途
語法:
=HSTACK(array1, [array2], …)
- array1, array2, …:要水平堆疊的陣列或範圍
- 回傳結果為一個新的動態陣列,將所有輸入橫向排列
- 若陣列列數不同,會自動填補空白
=HSTACK(A1:A3, B1:B3) 會將 A1:A3 與 B1:B3 合併成一個 3 列 2 欄的陣列。二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例
範例一:合併兩欄資料
=HSTACK(A1:A3, B1:B3)
範例二:合併三個不同範圍
=HSTACK(A1:A2, C1:C2, E1:E2)
範例三:合併文字與數值
=HSTACK({"姓名","分數"},A1:A5)
範例四:合併動態陣列
=HSTACK(SEQUENCE(3), SEQUENCE(3,1,10))
範例五:合併不同列數範圍
=HSTACK(A1:A4, B1:B2)
B 欄不足列數會自動填補空白。
🔸進階範例
範例六:搭配 VSTACK 建立完整表格
=VSTACK({"姓名","分數"},HSTACK(A1:A3,B1:B3))
範例七:搭配 DROP 移除多餘欄位後再合併
=HSTACK(DROP(A1:C5,0,1),D1:D5)
範例八:搭配 IF 判斷是否需要合併
=IF(COUNTA(B1:B3)>0,HSTACK(A1:A3,B1:B3),A1:A3)
範例九:批次合併多組資料(Excel 365)
=MAP({A1:A3,B1:B3,C1:C3},LAMBDA(x,HSTACK(x)))
範例十:搭配 WRAPROWS 重組合併後的陣列
=WRAPROWS(HSTACK(A1:A6,B1:B6),3)
三、常見問題解答(FAQ)
Q1:HSTACK 與 VSTACK 有何不同?
HSTACK 是水平堆疊,VSTACK 是垂直堆疊。
Q2:HSTACK 可以合併不同列數的範圍嗎?
可以,會自動填補空白。
Q3:HSTACK 可以合併文字與數值嗎?
可以,支援混合型別。
Q4:HSTACK 是否支援動態陣列?
支援,能與 SEQUENCE、FILTER 等函數搭配。
Q5:HSTACK 是否會改變原始資料?
不會,只回傳新的動態陣列。
四、注意事項與錯誤排除
- 若輸入非陣列或範圍,會回傳
#VALUE! - 若合併範圍列數不同,會自動填補空白
- 不支援直接合併整張工作表,需指定範圍
- 適用於報表設計、欄位拼接與動態輸出
- 建議搭配錯誤防呆邏輯處理空值或格式不一致
五、延伸技巧與相關函數
若需要更完整的資料合併與重組,可搭配以下函數:
- VSTACK 函數:垂直堆疊資料,與 HSTACK 相對
- DROP 函數:裁切不需要的列或欄,再進行合併
- WRAPROWS / WRAPCOLS 函數:重組合併後的陣列格式
- SEQUENCE 函數:建立動態數列,搭配 HSTACK 合併
- MAP / LAMBDA 函數:批次處理多組資料,建立自訂合併邏輯
這些函數能與 HSTACK 組合成一套完整的「資料合併 → 格式重組 → 報表輸出 → 批次處理」流程。
六、結語與延伸閱讀推薦
HSTACK 函數是 Excel 中專門處理水平合併的動態工具,適合用在報表設計、欄位拼接、資料整合與動態輸出等情境。學會 HSTACK 後,你可以進一步探索:
- [VSTACK 函數教學]:垂直堆疊的對應工具
- [DROP 函數教學]:裁切資料的彈性工具
- [WRAPROWS 函數教學]:重組陣列格式的排版利器











