描述
使用此函数可将多个范围或数组垂直堆叠成一个范围。
句法
VSTACK(array_1, [array_2], …, [array_29])
输入
该函数接受以下参数:
| 姓名 | 必要 | 描述 | 有效输入 |
|---|---|---|---|
数组_1 |
是的 | 第一个要垂直堆叠(连接)的范围或数组。 | 单元格引用、单元格区域或公式,其结果可以是上述任何一种。 |
[array_2], …, [array_29] |
不 | 要垂直堆叠的其他范围或数组。最多可以添加 29 个数组。 | 单元格引用、单元格区域或公式,其结果可以是上述任何一种。 |
实例
范例数据
数据集 1
| A | B | C | D | ||
|---|---|---|---|---|---|
| 1 | 姓名 | 销售 | 地区 | 委员会 | |
| 2 | Q1 | ||||
| 3 | 约翰 | 45000 | 北 | 4500 | |
| 4 | 爱丽丝 | 52000 | 南 | 5200 | |
| 5 | 鲍勃 | 49500 | 西方 | 4500 | |
| 6 | Q2 | ||||
| 7 | 约翰 | 48000 | 北 | 4800 | |
| 8 | 爱丽丝 | 55000 | 南 | 5500 | |
| 9 | 鲍勃 | 51250 | 西方 | 5100 |
数据集 2
表格 1(名为“员工_Q1”)
| 姓名 | 时代 | 城市 | 薪水 | ||
|---|---|---|---|---|---|
| 1 | 约翰 | 35 | 纽约 | 75000 | |
| 2 | 爱丽丝 | 28 | 芝加哥 | 65000 | |
| 3 | 鲍勃 | 42 | 洛杉矶 | 85000 |
表格 2(名为“员工_Q2”)
| 姓名 | 时代 | 城市 | 薪水 | ||
|---|---|---|---|---|---|
| 1 | 乔治 | 22 | 丹佛 | 55000 | |
| 2 | 海伦 | 30 | 斯科茨代尔 | 71000 |
示例公式
| 用例 | 公式 | 解释与结果 | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 将两个水平数组合并成一个表格。 | =VSTACK(A2:D4, A6:D8) |
该公式读取选项卡上的两个范围,并将 Q1 和 Q2 数据合并到一个范围内。使用数据集 1,结果如下:
|
|||||||||||||||||||||||||||||||||||
| 将两个工作表中的数据合并到一个表格中。 | =VSTACK(Employees_Q1!A2:D4, Employees_Q2!A2:D3) |
此公式从 Sheet 1 (Employees_Q1!A2:D4) 中提取 Q1 员工数据,从 Sheet 2 (Employees_Q2!A2:D3) 中提取 Q2 员工数据,并使用 VSTACK 将提取的两个数组垂直连接成一个列表。纵轴顺序由公式中表达式的顺序决定。使用数据集 2,结果如下:
|
|||||||||||||||||||||||||||||||||||
| 将一个表中的数据与另一个表中经过筛选的数据集合并。 将一个表中的数据与第二个表中经过筛选的数据集结合起来的一个用例是,当你想要用相关表中的特定信息来丰富主表中的数据,但仅限于某些条目时。 |
=VSTACK(A2:D4, FILTER(A6:D8, B6:B8>50000)) |
将第一季度数据与筛选后的第二季度数据(销售额大于 50000)合并。使用数据集 1,结果如下:
|
|||||||||||||||||||||||||||||||||||
| 将两个不同时间段的数据合并,提取唯一名称,并将每个人在两个时间段内的值相加。 | =HSTACK(UNIQUE(VSTACK(A2:A4, A6:A8)), SUMIF(VSTACK(A2:A4, A6:A8), UNIQUE(VSTACK(A2:A4, A6:A8)), VSTACK(B2:B4, B6:B8))) |
该公式使用 VSTACK 将 Q1 和 Q2 名称列合并为一个垂直列表,然后 UNIQUE 返回合并列表中的每个不同名称。VSTACK 再次用于合并 Q1 和 Q2 销售额列,SUMIF 则将每个名称在两个期间的销售额值相加。然后,HSTACK 将唯一名称及其总数并排显示。使用数据集 1,结果如下:
注意: UNIQUE 仅删除重复行,不执行任何计算。要计算每个名称的销售额总和,需要使用 SUMIF(或类似函数)以及 UNIQUE,如上所示。 |
笔记
- 与所有数组函数一样,VSTACK 函数会从包含 VSTACK 函数的单元格开始,动态地将结果填充到相邻的单元格中。
- VSTACK:
- 将一个或多个工作表中的多个区域垂直合并为一个垂直区域。数组的顺序决定了堆叠的顺序。函数中的第一个数组始终位于顶部。
- 可以堆叠宽度不同的范围。
- 可用于合并来自多个时间段或来源的数据。
- 可用于追加新记录而无需手动重新格式化。
- 保持数据动态(如果添加了新行,则输出会更新)。
使用技巧
- 如果您有标题行,但不想包含标题,请将数组值从下一行开始(例如,在上面的数据集中,从 A2 而不是 A1 开始)。
- VSTACK 可以与其他函数结合使用,包括:
数组公式函数
以下是 Workiva 电子表格中支持的其他数组公式函数。