Google Sheets中合并多组列对为两列的公式需求
Google Sheets 四列数据合并为两列的可行方案
原始数据
| 姓名1 | 数值1 | 姓名2 | 数值2 |
|---|---|---|---|
| John | 22 | Alex | 37 |
| Jack | 15 | Jake | 88 |
目标格式
| 姓名 | 数值 |
|---|---|
| John | 22 |
| Alex | 37 |
| Jack | 15 |
| Jake | 88 |
最直接的数组拼接方案
用Google Sheets的数组拼接语法,直接把两组数据纵向堆叠,这是最高效的方法:
=ArrayFormula({A2:B3; C2:D3})
- 语法说明:
{区域1; 区域2}代表把两个区域纵向合并,分号是纵向堆叠的分隔符 - 如果需要自动带上表头,可写成:
=ArrayFormula({"姓名", "数值"; A2:B3; C2:D3})
如果你的数据行数不固定,想自动适配所有非空行,可用动态范围写法:
=ArrayFormula( { A2:INDEX(A:A, COUNTA(A:A)), B2:INDEX(B:B, COUNTA(B:B)); C2:INDEX(C:C, COUNTA(C:C)), D2:INDEX(D:D, COUNTA(D:D)) } )
兼容新版Sheets的简化方案(STACK函数)
如果你的Google Sheets是新版,支持STACK函数,写法更直观:
=STACK(A2:B3, C2:D3)
- 这个函数直接将多个指定区域纵向堆叠,无需手动写数组语法
- 带表头的写法:
=STACK({"姓名", "数值"}, A2:B3, C2:D3)
故障排查(针对你之前ArrayFormula失败的情况)
你之前用ArrayFormula没成功,大概率是没用到数组拼接的{}语法。Sheets中要合并多个区域,必须用{}包裹,分号用于纵向合并,逗号用于横向合并,再配合ArrayFormula让公式自动扩展到所有行。
内容的提问来源于stack exchange,提问作者jpjunho
相关产品推荐
相关产品推荐

