推荐使用辅助列+公式实现逻辑合并:在b2输入=if(a2=a1,"",a2)并填充,再粘贴为数值,隐藏原列即可呈现视觉合并效果,不丢失数据且支持后续操作。

如果您在Excel中需要将多行具有相同内容的单元格合并为一个单元格,并保持数据可读性与排版整洁,则不能依赖常规的“合并后居中”功能,因其会丢失重复行中的非首行数据。以下是几种安全、可逆、不丢失数据的批量合并方法:
一、使用辅助列+公式实现逻辑合并(推荐)
该方法不实际合并单元格,而是通过公式构造出“合并显示效果”,避免破坏原始数据结构,便于后续筛选、排序与计算。
1、在数据右侧插入一列作为辅助列,例如原数据在A列(A2:A100),则在B2输入公式:=IF(A2=A1,"",A2)。
2、将B2公式向下填充至B100。
3、复制B列结果,选择性粘贴为数值,覆盖原B列。
4、隐藏A列或仅显示B列,即可呈现“相同内容仅首行显示”的视觉合并效果。
二、Power Query按组聚合生成合并文本
适用于需将相同分类下的多行内容汇总为单个字符串(如用顿号连接),且支持动态刷新。
1、选中数据区域,按Ctrl+T将其转为表格,确认“表包含标题”。
2、在“数据”选项卡中点击“从表格/区域”打开Power Query编辑器。
3、右键点击需分组的列(如“部门”列),选择“按组汇总”。
4、在弹出窗口中,新建聚合列,操作选“所有行”,然后在高级选项中添加自定义列公式:Text.Combine([内容列][内容], "、")(将“内容列”替换为实际列名)。
5、点击“关闭并上载”,结果将以合并后的文本形式输出到新工作表。
三、VBA宏自动标记合并区域(仅视觉合并)
该方法真实设置单元格合并属性,但仅对连续相同值生效,且必须确保数据已排序;执行前请务必备份文件。
1、按Alt+F11打开VBA编辑器,插入→模块。
2、粘贴以下代码:
Sub AutoMergeSameCells()
Dim rng As Range, cell As Range, startRow As Long
Set rng = Selection
If rng.Rows.Count
startRow = rng.Row
For Each cell In rng.Columns(1).Cells
If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
Else
If cell.Row > startRow Then
Range(Cells(startRow, cell.Column), cell).Merge
Cells(startRow, cell.Column).VerticalAlignment = xlCenter
End If
startRow = cell.Row + 1
End If
Next cell
End Sub
3、返回Excel,选中待处理列(如A2:A100),运行宏。










