如何在 Excel 中快速将多列数据堆叠成一列?
在 Excel 中,分列功能可使用指定分隔符将单列中的数据拆分为多列。但如果您需要执行相反的操作——将多列的值合并或垂直堆叠成单列(如下例所示),又该如何实现?这种情况在整合数据集、准备分析信息或为后续处理格式化报告时十分常见。遗憾的是,Excel 并未提供内置函数直接实现列的垂直堆叠,但您仍可通过几种高效实用的解决方案轻松完成此任务。
使用公式将多列堆叠成一列
如果您不想使用宏或加载项,可以使用基于 INDEX 函数的数组公式,将多列数据自动堆叠为单列。此方法特别适用于动态数据集或希望避免手动操作的场景——当源数据发生变化时,公式结果会自动更新!但请注意:您必须精确设置单元格引用,并避免在引用范围内插入或删除单元格,以免影响公式准确性。
1. 选择您要堆叠的数据区域(例如 A1:C4),然后单击位于编辑栏左侧的名称框,输入一个有意义的名称,如 MyData,再按 Enter,即可为该区域命名,方便后续轻松引用。
2. 单击您希望堆叠后单列数据开始的空白单元格——通常位于现有数据下方或另一张工作表中,然后将此公式粘贴到所选单元格内:
=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1) 3. 按 Enter 确认,然后向下拖动填充柄,直至出现 #REF!或其他类似错误,即表示所有数据均已列出。如有需要,可删除错误单元格。
在此公式中,MyData 指代您在第 1 步中定义的范围。COLUMNS(MyData)会根据数据列数自动调整。输入公式后,请勿在 MyData 范围内插入或删除列,否则将影响结果。若数据包含空单元格,这些空白也会被一并堆叠——如有需要,后续可将其筛选剔除。处理大范围数据时,拖动填充柄可能耗时较长;若左侧列的数据已延伸至底部,建议双击填充柄以快速填充。
如果您的 Excel 版本支持动态数组(Excel 365 或 Excel 2021 及更高版本),可尝试:
=TOCOL(MyData,1) 此公式仅适用于较新版本的 Excel,可立即将多列数据堆叠为单列。
使用 VBA 将多列堆叠成一列
如果您经常需要堆叠列,或希望获得更强大的控制能力,VBA 宏只需几次点击即可自动完成整个过程。VBA 特别适合处理大型数据集或重复性任务的高级用户。但请注意,启用宏可能存在安全风险,尤其是在您不确定宏来源的情况下。运行前请务必备份文件,并谨慎执行不熟悉的代码。
1. 按下 Alt + F11,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 在 VBA 窗口中,单击插入> 模块,即可创建新模块。将以下代码复制并粘贴到该模块中:
VBA:将多列堆叠成一列
Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
Rng.Copy
Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub 
3. 要运行宏,请按 F5,或单击运行按钮。运行后将弹出提示框——请选择您要堆叠的数据区域,然后单击 OK。
4. 随后,系统将提示您选择结果的目标单元格。再次单击 OK,各列便会从目标单元格开始堆叠成单列。

如遇错误,请仔细检查所选区域,确保其中不含受保护的工作表或合并单元格。若需更高级的自定义功能(例如跳过空单元格或仅堆叠特定列),可进一步调整代码。运行 VBA 代码前,请务必备份工作内容,以防意外丢失数据。
使用转换区域将多列堆叠成一列
Kutools for Excel 的转换区域功能为您提供一种快速且用户友好的解决方案,无需编写公式或代码。该工具特别适合希望通过直观界面快速处理数据的用户,例如办公室管理员或经常处理多维数据的人员。使用 Kutools 可最大限度减少公式错误并显著节省时间,但需要安装该加载项。
免费安装 Kutools for Excel 后,请按以下步骤操作:
1. 选择您要堆叠成一列的列或数据范围,然后点击 Kutools > 区域 > 转换区域,即可打开对话框。
2. 在转换区域对话框中,选择区域转单列选项,然后单击 OK。接着,选择一个单元格作为结果显示位置。
3. 最后,单击 OK,所选列将立即堆叠成一列,并显示在您指定的位置。
此方法简单直接且不易出错。如果结果不符合预期,可轻松撤销操作(Ctrl + Z),或根据需要对不同数据集重新运行转换区域。如果您的数据包含合并,建议在使用此功能前先取消合并,以避免意外结果。
使用 Power Query 将多列堆叠成一列
Power Query(在部分 Excel 版本中亦称为“获取和转换”)是将多列堆叠为单列的另一种高效方法,尤其适合处理海量数据或需自动化重复数据转换任务的用户。该功能内置于 Excel 2016 及更高版本,并可作为免费加载项用于 Excel 2010 和 2013. 凭借直观的用户界面,Power Query 能轻松应对复杂的重塑操作,是高级数据准备的理想之选,不过初学者可能需要一定时间适应。
将源表加载到 Power Query 中。在 Excel 中选择您的数据,然后转到数据> 来自表格/区域,即可打开 Power Query 编辑器。
2. 在查询预览中选择所有列,转到转换选项卡,在表组中单击转置,即可实现行列互换。
3. 再次选择所有转置后的列,然后在转换选项卡的任意列组中,单击逆透视列。
4. 如果不需要“Attribute”列,请将其删除。右键单击“Attribute”列标题 > 选择“删除”。
5. 单击关闭并加载,即可将结果以新工作表或表格形式导入 Excel。当源数据发生变化时,可随时刷新或重新应用此转换。
Power Query 允许您将此堆叠过程保存为可重用的查询,并在未来数据变化时快速更新结果。
注意:此方法可能无法保留源数据中的原始列标题信息。
总之,每种方法各具优势:公式适用于动态更新数据,VBA 非常适合自动化重复性任务,Kutools for Excel 通过简单点击即可完成操作,几乎无需技术背景,而 Power Query 则专为高级或重复性数据转换而设计。处理完成后,请务必检查堆叠后的数据中是否仍存在空白单元格、合并单元格或格式错误。如遇错误或意外结果,请仔细核对所定义的区域或执行的步骤。灵活结合这些方法,将助您高效管理与转换 Excel 数据,轻松满足报表与分析需求。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱