
Excel多列数据纵向合并成一列

告别复制粘贴,10秒自动堆叠
多列纵向合并成一列时,你是否还在一列列复制粘贴,原始数据出了问题,所有操作都发白费……手动复制堆叠不仅效率极低,还容易出现重复、遗漏、排序错乱的问题,白忙活一场!
今天分享零门槛多列纵向堆叠技巧,适配所有Excel、WPS版本,不管是两列、三列还是多列数据,一键批量堆叠成单列,自动剔除空白,新手也能秒上手,赶紧收藏码住!
方法一:TOCOL函数(区域压扁)
作用:TOCOL 是Excel专属“区域压扁函数”,可以把一片多行多列的矩形区域,自动转换成一整列纵向数据。
公式: =TOCOL(区域, [忽略方式], [扫描顺序])
1️⃣第一参数:区域
你需要合并的多行多列范围,例如 A1:D20
2️⃣ 第二参数:忽略方式
• 0:默认,保留空白单元格(不推荐)
• 1:忽略空白单元格(日常万能首选)
• 3:忽略空白+忽略错误值(处理脏数据神器)
3️⃣ 第三参数:扫描顺序
• FALSE / 省略:按行扫描(先读完一整行,再下一行)
• TRUE:按列扫描(先读完一整列,再下一列)
【案例实操】
实践任务:将B列-G 列的内容案列输出,空白单元格不要
操作步骤:
1、选中合并列想要存放区域的首行单元格;
2、输入公式:=TOCOL(B1:G16,1,1)

方法二:VSTACK 函数(纵向堆叠)
作用:VSTACK 是Excel专属纵向堆叠函数,是将多个独立单元格区域、整列、数据表,从上到下依次纵向堆叠拼接合并。
公式:=VSTACK(区域1, [区域2], [区域3], ...)
逻辑:
先放完【区域1】全部内容 → 接续放【区域2】全部内容 → 接续放【区域3】
【案例实操】
实践任务:将B列-G 列的内容案列输出,空白单元格不要
操作步骤:
1、选中合并列想要存放区域的首行单元格;
2、输入公式:=VSTACK(B1:B12,C1:C15,D1:D11,E1:E12,F1:F14,G1:G12)

【进阶实操】
上述操作需要选中区域无空白单元格,通常VSTACK+FILTER组合使用。原理:先用FILTER剔除每一列的空白,再用VSTACK精准堆叠,零空行、零冗余。
=VSTACK(FILTER(B:B,B:B<>""),FILTER(C:C,C:C<>""),FILTER(D:D,D:D<>""),FILTER(E:E,E:E<>""),FILTER(F:F,F:F<>""),FILTER(G:G,G:G<>""))

关键避坑
1、公式转数值:堆叠完成后,复制结果列 → 右键选择性粘贴为【数值】,去除公式。
2、顺序不乱:所有方法均按照「前列优先、后列接续」的顺序堆叠。
3、自动去空:优先使用带TOCOL/FILTER/等公式,杜绝空白行,无需二次清理。
4、慎用整列:绝不直接VSTACK(A:A),必卡表,必须搭配FILTER去除空白单元格。
END

如果这篇对你有帮助,记得点个关注☝并分享给小伙伴吧

往期回顾

夜雨聆风