Excel 365 Mac 多列合并为单列的实现方法咨询
Excel 365 Mac 多列合并为单列的实现方法咨询
嗨,很高兴能帮到你!针对你在Excel 365 Mac里把多列数据合并成单列的需求,我给你整理了几种不同的方法,你可以根据自己的情况选:
方法一:用动态数组公式(最推荐,零手动重复操作)
如果你用的是Office 365,那一定要试试TOCOL这个实用函数,专门用来把多列/多行数据转成单列:
- 假设你的数据分布在A到C列(比如A1:C10),找个空白列的第一个单元格(比如D1),输入公式:
=TOCOL(A:C,1) - 参数
1的作用是自动忽略空单元格,如果想保留空值,把1改成0就行。 - 按下回车后,Excel会自动把所有非空数据从上到下填充到目标列,完全不用手动下拉复制,超级省心!
方法二:手动复制粘贴(适合数据量小的情况)
如果你的数据行数不多,手动操作反而更直接:
- 选中第一列的所有有效数据,按
Command+C复制 - 点击你要放合并数据的目标单元格,按
Command+V粘贴 - 接着选中第二列的数据,复制后,点击目标列里最后一个已粘贴数据的下一行,粘贴;重复这个步骤直到所有列都处理完。
方法三:VBA宏自动化(适合经常需要做这个操作的情况)
虽然你说不太熟悉VBA,但我会给你一步步讲清楚怎么操作,跟着做就行:
- 打开你的Excel文件,按下
Option+F11打开VBA编辑器(Mac版的快捷键) - 在左侧的「项目」窗口里,找到你当前的工作簿,右键点击它,选择「插入」→「模块」
- 在弹出的代码窗口里,粘贴下面这段代码:
Sub CombineColumnsToSingle() Dim sourceRange As Range Dim targetCell As Range Dim col As Range ' 让你选择要合并的多列区域 Set sourceRange = Application.InputBox("请选择要合并的列区域(可以多选列)", Type:=8) ' 让你选择目标列的第一个单元格 Set targetCell = Application.InputBox("请选择合并后数据存放的起始单元格", Type:=8) ' 遍历每一列,把数据复制到目标列 For Each col In sourceRange.Columns col.Copy targetCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False ' 更新目标单元格到下一个空行 Set targetCell = targetCell.Offset(col.SpecialCells(xlCellTypeConstants).Count, 0) Next col ' 清除剪贴板内容 Application.CutCopyMode = False MsgBox "合并完成!", vbInformation End Sub
- 保存工作簿时,一定要选择「Excel 启用宏的工作簿(.xlsm)」格式,不然宏会丢失
- 回到Excel界面,按下
Option+F8打开宏对话框,选中CombineColumnsToSingle,点击「执行」 - 按照弹窗提示,先选择要合并的列区域,再选择目标列的起始单元格,等弹窗提示“合并完成”就搞定啦!
备注:内容来源于stack exchange,提问作者Sandee
相关产品推荐
相关产品推荐

