如何在 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 键,或点击“运行”按钮。运行后会出现一个提示——选择要堆叠的数据范围并点击 确定。
4. 接下来系统会提示你选择结果的目标单元格。点击 确定 即可。列将从目标单元格开始堆叠到一列中。
如果遇到错误,请仔细检查所选范围,并确保没有受保护的工作表或合并单元格。如需更高级的自定义(例如跳过空白单元格或仅堆叠某些列),可以进一步修改代码。运行 VBA 代码前请务必备份工作以防意外数据丢失。
使用转换区域将多列堆叠为一列
如果你偏好无需编写公式或代码的快速且用户友好的解决方案,可以使用 Kutools for Excel 的转换区域功能。此工具特别适合希望通过直观界面快速处理数据的用户,例如办公室管理员或那些例行处理多维数据的人员。使用 Kutools 能最大限度减少公式错误的风险,并节省大量时间,尽管它需要安装插件。
免费安装 Kutools for Excel 后,按照以下步骤操作:
1. 选择要堆叠到一列的列或数据范围。然后点击 Kutools > 区域 > 转换区域 打开对话框。
2. 在 转换区域 对话框中,选择 区域转单列 选项,并点击 确定。接下来,选择一个希望结果显示的单元格。
3. 最后,点击 确定。所选列将立即堆叠到你选择位置的一列中。
此方法简单直接且无错误。如果结果不对,可以轻松撤销更改(Ctrl + Z),或者根据需要重新运行转换区域以处理不同的数据集。如果数据中包含合并单元格,最好在使用此功能之前取消合并,以避免意外结果。
使用 Power Query 将多列堆叠为一列
Power Query(在某些 Excel 版本中也称为获取和转换)是另一种将多列堆叠为一列的实用方法,特别是对于处理大量数据或需要自动化重复数据转换任务的用户。Power Query 内置于 Excel 2016 及更高版本中,并且作为 Excel 2010 和 2013 的免费插件提供。它在高级数据准备方面最有用,并能通过简单的用户界面轻松处理复杂的重塑操作。然而,初次使用者可能需要一点学习时间。
将源表加载到 Power Query 中。在 Excel 中选择你的数据。前往 数据 > 从表格/区域 打开 Power Query 编辑器。
2. 在查询预览中选择所有列。前往转换选项卡,在表格组中找到并点击转置。这会翻转行和列。
3. 再次选择所有转置后的列。在转换选项卡下,任意列组中点击取消透视列。
4. 如果不需要“属性”列,可以右键点击“属性”列标题 > 选择删除。
5. 点击关闭并加载,将结果作为新的工作表或表格发送到 Excel。任何时候,如果源数据发生变化,都可以刷新或重新应用转换。
Power Query 允许你将此堆叠过程保存为可重复使用的查询,并在将来数据发生变化时快速更新结果。
注意:这种方法可能不会保留源数据中的原始列标题信息。
总之,每种方法都有其优势:公式适合动态更新数据,VBA 适合自动化重复任务,Kutools for Excel 提供了几乎无需技术知识的点击式操作,而 Power Query 则非常适合高级或重复的转换需求。处理后始终检查堆叠数据是否存在剩余的空白、合并单元格或格式错误。如果出现错误或意外结果,请仔细检查定义的范围或步骤选择。结合使用这些方法将帮助你高效管理和转换 Excel 数据,满足报告和分析需求。
最佳Office办公效率工具
🤖 | Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数…… |
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入…… | |
高级LOOKUP:多条件VLookup|多值VLookup|多表查找|模糊查找…… | |
高级下拉列表:快速创建下拉列表 |依赖下拉列表 | 多选下拉列表…… | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列…… | |
特色功能:网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)…… | |
15大工具集:12项 文本工具(添加文本、删除特定字符等)|50+种 图表 类型(甘特图等)|40+实用 公式(基于生日计算年龄等)|19项 插入工具(插入二维码、从路径插入图片等)|12项 转换工具(小写金额转大写、汇率转换等)|7项 合并与分割工具(高级合并行、分割单元格等)| …… |
通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……
Office Tab为Office带来多标签界面,让您的工作更加轻松
- 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读。
- 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
- 可提升50%的工作效率,每天为您减少数百次鼠标点击!
所有Kutools加载项,一键安装
Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。





- 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
- 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
- 协同更高效——提升Office应用间的整体工作效率
- 30天全功能试用——无需注册,无需信用卡
- 超高性价比——比单独购买更实惠