跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在 Excel 中对包含合并单元格的数据进行排序?

Author Siluvia Last modified
a prompt box will appear while sorting merged cells

尝试对包含合并单元格的 Excel 数据进行排序时,通常会出现错误提示,如左图截图所示。这种行为是由于 Excel 当前的限制所致——Excel 原生不支持对包含合并单元格的区域进行排序,因为合并区域会破坏底层数据结构,并使得排序功能难以正常运行。

当处理使用合并单元格来格式化或分组数据的工作表时,您可能仍然需要组织或重新排列数据。为实现此目的,必须首先适当地处理这些合并单元格。以下是一些实用的方法,可以在保留信息的同时处理和排序包含合并单元格的数据。

先取消所有合并单元格再对数据进行排序
通过 Kutools for Excel 对包含合并单元格的数据进行排序
通过 VBA 自动化(取消合并、填充、排序、重新合并)对包含合并单元格的数据进行排序


先取消所有合并单元格再对数据进行排序

由于 Excel 的默认排序功能无法对包含合并单元格的区域进行操作,因此必要的方法是首先取消数据列表中的所有合并单元格。一旦取消合并,空白单元格将出现在之前合并单元格的位置,因此您需要填充这些空白单元格以确保准确的排序。以下是逐步方法:

1. 选择要排序的完整列表或表格,其中包含合并单元格。选中数据后,点击“开始”选项卡下的“合并后居中”以取消所有合并单元格。请参考下图以获取视觉指导:

click Home > Merge & Center to unmerge merged cells

2. 取消合并后,您会发现先前合并的区域现在变为空白单元格。在仍处于选中状态的情况下,进入“开始”选项卡,然后单击“查找与选择” > “定位条件”。此步骤可高效批量选择范围内的所有空白单元格,使下一步骤更加快速。

click Go To Special under Home tab

3. 在“定位条件”对话框中,选择“空值”选项并单击“确定”。这将立即突出显示所选范围内的所有空白单元格。

select the Blanks option in the dialog box

4. 空白单元格仍处于高亮状态时,转到编辑栏并输入“=”符号,然后选择第一个空白单元格正上方的单元格以创建引用公式(例如,如果 C3 是空白单元格,则输入 =C2)。不要只按 Enter 键,而是按住 Ctrl 并按 Enter 键,一次性填充所有选定的空白单元格对应上方单元格的值。

完成此步骤后,每个之前的合并区域都已填充其原始值,从而确保在排序过程中数据的完整性。

enter a formula and press the Ctrl + Enter to fill the cells with above value

5. 现在您可以正常对数据进行排序了——选择任意列,进入“数据”选项卡,然后选择“升序”或“降序”。如果您希望在排序后恢复合并格式,可以手动重新合并相邻的相同值,但要小心避免跨无关数据进行合并。

提示: 如果保留合并格式很重要,请始终在继续操作之前备份原始数据。另外请注意,在取消合并并填充空白单元格后,公式仍然存在。如果您想将公式转换为值,可以选择范围,复制,然后粘贴为值,以避免在排序后出现不需要的公式更新。


通过 Kutools for Excel 对包含合并单元格的数据进行排序

Kutools for Excel 提供了一种更直接且高效的解决方案,用于对包含合并单元格的数据进行排序,尤其在处理大型数据集或频繁格式化需求时,这一过程变得更加可靠。Kutools for Excel 中的“取消合并单元格并填充值”工具可以自动取消合并单元格,并用原先的合并值填充生成的空白单元格,消除手动干预,显著提高效率。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1. 选中含有要排序的合并单元格的范围。接下来,导航至 Kutools > 合并与拆分 > 取消合并单元格并填充值。参考以下截图以获取指导:

click Unmerge Cell & Fill Value feature of kutools

执行此操作后,所选范围内所有合并单元格会被立即取消合并,并且新生成的空白单元格会被填充相应的原合并单元格的值,从而确保整个表格的一致性。

all merged cells are unmerged and filled the values above

2. 现在您可以像平常一样对数据进行排序。排序后,为了保持一致的外观或数据展示目的,Kutools 还提供了一种快速重新合并相同内容单元格的方式。只需选择排序后的范围,然后进入 Kutools > 合并与拆分 > 合并相同单元格,即可仅在值相同的地方高效重新应用合并格式。

  如果您想免费试用(30天)此工具,请点击下载,然后按照上述步骤进行操作。

优点: 此方法减少了手动步骤,降低了出错的可能性,尤其是在处理复杂表格或常规报告需求时特别适用。务必在排序后检查合并结果,以确保合并不会遗漏任何重要数据关系。


通过 Kutools for Excel 对包含合并单元格的数据进行排序

 

通过 VBA 自动化(取消合并、填充、排序、重新合并)对包含合并单元格的数据进行排序

对于熟悉宏的用户,通过 VBA 自动化可以简化合并单元格的处理——特别是在重复性或大规模排序任务中。这种方法能够高效地:

  • 取消指定范围内的所有合并单元格
  • 为保持一致性,用上方单元格的值填充生成的空白单元格
  • 按任意指定列对数据进行排序
  • 如有需要,重新合并排序数据中的连续相同值

此方法适用于自定义工作流程,但需要启用宏并谨慎操作以避免数据丢失。如果您是 VBA 新手,建议先在一个示例工作表上测试。

操作步骤:

1. 在功能区上,点击“开发工具” > “Visual Basic”打开 Visual Basic for Applications 窗口,然后点击“插入” > “模块”。将以下代码复制并粘贴到模块窗口中:

Sub SortDataWithMergedCells()
    Dim ws As Worksheet
    Dim rng As Range, cell As Range
    Dim lastRow As Long, lastCol As Long
    Dim sortCol As Variant
    Dim reMerge As VbMsgBoxResult
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = ActiveSheet
    Set rng = Application.InputBox("Select the data range to sort", xTitleId, Selection.Address, Type:=8)
    
    If rng Is Nothing Then Exit Sub
    
    ' Store dimensions
    lastRow = rng.Rows.Count + rng.Row - 1
    lastCol = rng.Columns.Count + rng.Column - 1
    
    ' Unmerge and fill down values
    rng.UnMerge
    For Each cell In rng
        If IsEmpty(cell.Value) Then
            cell.Value = cell.Offset(-1, 0).Value
        End If
    Next cell
    
    ' Ask for sort column
    sortCol = Application.InputBox("Enter column number in your selection to sort by (e.g. 1 for first column)", xTitleId, 1, Type:=1)
    
    If sortCol = False Then Exit Sub
    
    ' Sort the range
    rng.Sort Key1:=rng.Cells(1, sortCol), Order1:=xlAscending, Header:=xlNo
    
    ' Ask if user wants to re-merge identical consecutive values
    reMerge = MsgBox("Do you want to re-merge identical consecutive values in the sorted range (column " & sortCol & ")?", vbYesNo + vbQuestion, xTitleId)
    
    If reMerge = vbYes Then
        Dim startCell As Range, endCell As Range
        Dim currVal As Variant
        Dim i As Long
        
        Set startCell = rng.Cells(1, sortCol)
        currVal = startCell.Value
        Set endCell = startCell
        
        For i = 2 To rng.Rows.Count
            If rng.Cells(i, sortCol).Value = currVal Then
                Set endCell = rng.Cells(i, sortCol)
            Else
                If startCell.Address <> endCell.Address Then
                    ws.Range(startCell, endCell).Merge
                End If
                Set startCell = rng.Cells(i, sortCol)
                currVal = startCell.Value
                Set endCell = startCell
            End If
        Next i
        
        ' Final group
        If startCell.Address <> endCell.Address Then
            ws.Range(startCell, endCell).Merge
        End If
    End If
    
    On Error GoTo 0
End Sub

2. 要运行宏,请点击 Run button 运行 按钮在 VBA 编辑器中。系统将提示您选择数据范围以及排序列号。确认每个提示,让宏完成所有步骤。如果您选择重新合并,代码将自动合并指定列中具有相同值的相邻单元格。

提示:

  • 在运行 VBA 宏之前,始终备份您的工作表,因为像取消合并/合并这样的操作是不可逆的。
  • 按标题或非数字列排序可能需要额外调整——请确保根据您的选择指定正确的列号。
  • 如果在排序后遇到错误,请验证整行或整列的引用,并根据特定数据布局调整宏的参数。

优势: 自动化了一个原本重复的多步骤任务——尤其适用于重复性工作。
局限性: VBA 宏需要启用宏(可能会有潜在的安全警告),并且复杂的表格布局可能需要在恢复合并后进行人工审查。

为获得最佳效果,请先在数据副本上测试此宏。这个 VBA 解决方案特别适合那些需要频繁重复排序和合并过程或处理动态数据导出的用户。


最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

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