跳转至

HSTACK 函数

函数概述

HSTACK 用于按列方向横向拼接多个数组或区域,把它们并排“堆叠”到同一个结果数组中。它属于动态数组函数,返回结果会自动溢出到右侧及下方单元格。

适用场景示例:

  • 将多个分散的表并排合并为一张宽表
  • 把“姓名列 + 多个月份数据列”横向组装成报表
  • 拼接不同来源的数组结果(如 FILTER、UNIQUE 的返回值)并排展示

提示:横向拼接用 HSTACK;纵向拼接用 VSTACK(思路类似)。

基础语法

=HSTACK(array1, [array2], ...)

参数说明

参数 是否必填 含义 可填写内容
array1 必填 第一个要拼接的数组/区域 单元格区域、数组常量、函数返回数组
array2... 选填 继续横向拼接的数组/区域 可继续追加多个

补充规则(理解结果形状很关键):

  • HSTACK 会把各个数组按列方向并排放在一起。
  • 若各数组的行数不同,会用 #N/A 把较短的数组在底部补齐到最长行数(以保持矩形结果)。

基础用法示范

示例1:两列并排合并

需求:把 A 列“姓名”和 C 列“部门”并排生成两列表。

=HSTACK(A2:A6, C2:C6)

结果:输出为两列动态数组,左列来自 A2:A6,右列来自 C2:C6。


示例2:多区域横向拼接

需求:将“姓名、部门、入职日期”三块区域并排合并。

=HSTACK(A2:A6, C2:C6, E2:E6)

示例3:与筛选结果并排展示

需求:筛选出销售额大于等于 10000 的记录,并把“姓名”和“销售额”两列并排返回。

1
2
3
4
=HSTACK(
  FILTER(A2:A20, D2:D20>=10000),
  FILTER(D2:D20, D2:D20>=10000)
)

说明:同一条件筛选两次,分别取不同列,再用 HSTACK 拼成两列结果。


示例4:行数不一致时的补齐

需求:把 3 行的数组与 5 行的数组并排。

=HSTACK(A1:A3, C1:C5)

现象:左侧数组只有 3 行,右侧有 5 行;最终结果会以 5 行为准,左侧第 4、5 行会显示 #N/A 作为补齐。


示例5:拼接表头与数据

需求:生成带表头的两列表(“姓名”“部门”),下方接数据。

1
2
3
4
=VSTACK(
  {"姓名","部门"},
  HSTACK(A2:A6, C2:C6)
)

说明:用数组常量构造表头,再用 VSTACK 纵向叠到数据上方。

总结

  • HSTACK 的核心作用是:把多个数组按列方向横向并排合并,返回一个新的动态数组。
  • 参数可接:区域、数组常量、以及其他动态数组函数的返回值,组合能力很强。
  • 合并时会以最大行数为准,行数不足的部分用 #N/A 补齐。
  • 常见搭配:FILTER/UNIQUE/SORT 等返回数组的函数,用 HSTACK 快速并排组装报表。