Excel中合并相同内容单元格有三种方法:一、用“合并后居中”配合筛选定位,适用于已排序数据的视觉合并;二、用Power Query分组取首值,生成可刷新的新表;三、用VBA宏自动物理合并连续相同值区域。

如果您在Excel中需要将多行具有相同内容的单元格合并为一个单元格,但又希望避免手动逐个操作带来的低效与格式错乱,则需采用结构化、可复用的方法。以下是实现该目标的多种操作路径:
一、使用“合并后居中”配合筛选与定位
该方法适用于数据已按待合并字段排序、且仅需视觉合并(不涉及公式或后续计算)的场景。其核心是利用Excel对连续相同值区域的识别能力,通过定位空行实现分段合并。
1、选中待处理的数据列(例如A2:A100),确保该列已按升序或降序排列,使相同内容连续排列。
2、在相邻空白列(如B列)第一行输入公式:=IF(A2=A1,"",ROW()),向下填充至数据末尾。
3、复制B列结果,选择性粘贴为数值,再按B列升序排序,使所有非空行集中于顶部。
4、选中A列数据区域,按Ctrl+G → 定位条件 → 空值,Excel将自动选中所有空白单元格。
5、在编辑栏输入=上一非空单元格地址(例如若当前选中A5:A8为空,而A4有值,则输入=A4),按Ctrl+Enter批量填入相同内容。
6、再次选中A列全部数据区域,点击“开始”选项卡中的“合并后居中”按钮完成视觉合并。
二、借助Power Query进行逻辑合并并保留首行值
该方法不改变原始表格结构,生成新查询表,支持动态刷新,适合需长期维护或关联其他数据源的场景。它通过分组聚合提取每组首个非空值,再扩展行数以匹配原数据量。
1、选中数据区域(含标题行),按Ctrl+T创建为表格,确认“表包含标题”。
2、在“数据”选项卡中点击从表格/区域,打开Power Query编辑器。
3、右键点击待合并列名,在下拉菜单中选择分组依据,分组依据选“全部行”,新列名设为“Data”。
4、添加自定义列,公式为:= Table.First([Data])[原始列名](将“原始列名”替换为实际列名,如“产品名称”)。
5、删除原列和“Data”列,仅保留新建的自定义列。
6、点击“关闭并上载”,结果将以新工作表形式插入,该列已按相同内容逻辑归并为首值。
三、使用VBA宏实现一键批量合并(相同内容自动合并)
该方法直接修改工作表结构,执行后生成真正合并的单元格区域,适用于固定格式报表输出。宏通过遍历列内连续相同值区间,调用Range.Merge方法完成物理合并。
1、按Alt+F11打开VBA编辑器,插入新模块。
2、粘贴以下代码:
Sub MergeSameCells()
Dim rng As Range, cell As Range, startRow As Long, endRow As Long, i As Long
Set rng = Selection
If rng.Columns.Count > 1 Then Exit Sub
startRow = rng.Row
i = startRow
Do While i
endRow = i
Do While endRow
endRow = endRow + 1
Loop
If endRow > i Then
Range(Cells(i, rng.Column), Cells(endRow, rng.Column)).Merge
End If
i = endRow + 1
Loop
End Sub
3、返回Excel,选中需合并的单列数据区域(如A2:A100)。
4、按Alt+F8打开宏列表,选择“MergeSameCells”,点击“运行”。










