如何对 Excel 中的行进行分组:手动和自动方法
如何对 Excel 中的行进行分组:手动和自动方法
当 Excel 工作表包含数百甚至数千行数据时,逐行滚动查找内容会让报表变得难以阅读。通过对行进行分组,可以将相关数据整理成可展开和折叠的区域,在保留明细数据的同时,更方便地查看汇总信息。根据数据结构和使用场景,你可以手动对行进行分组,也可以使用 Excel 的自动工具、数据透视表或 Python 完成分组。
- 快速解答
- Excel 行分组是什么
- 如何在 Excel 中手动对行进行分组
- 如何在 Excel 中自动对行进行分组
- 如何在 Excel 中创建多级(嵌套)行分组
- 如何展开或折叠 Excel 中的分组行
- 如何在 Excel 数据透视表中进行分组
- 使用 Python 批量自动处理多个 Excel 文件中的行分组
- 总结
- 常见问题解答
快速解答
- 手动对少量行进行分组: 选中目标行,然后进入 数据 > 分级显示 > 组合,或按 Alt + Shift + 向右键。
- 按类别自动分组: 先按目标列对数据排序,然后使用 数据 > 分级显示 > 分类汇总。
- 创建多级行分组: 先建立最内层的子分组,再将这些子分组包含到更大的父级分组中。
- 在数据透视表中分组: 右键点击日期、数值或已选中的字段项,然后选择 组合。
- 批量处理多个 Excel 文件: 使用 Python 将相同的行分组规则自动应用到多个工作簿。
Excel 行分组是什么?
Excel 行分组可以将相关行整理成可展开和折叠的区域,并在行号左侧添加带有加号(+)和减号(-)的分级显示控件。
例如,在销售报表中,可以将大量每日交易明细折叠起来,只保留月度汇总;需要查看具体数据时,再展开相应分组。
为了更清楚地理解行分组,可以将它与 Excel 中其他常见功能进行对比:
- 与合并单元格相比: 合并单元格会将相邻单元格合并为一个更大的单元格;行分组则会保留每一行的独立数据,只控制明细行的显示和隐藏。
- 与隐藏行相比: 隐藏行只是让行暂时不可见,而分组行会提供分级显示控件,方便随时展开或折叠明细。
如何在 Excel 中手动对行进行分组
对于需要精确控制分组范围的自定义数据,手动对行进行分组是最直接的方式。你可以通过功能区中的 组合 命令完成操作,也可以使用快捷键快速创建分组。
操作步骤
选择需要分组的明细行。在工作表左侧拖动选择相应的行号,如果明细数据下方有汇总行或合计行,请不要将其包含在所选范围中。
在 数据 选项卡的 分级显示 组中,点击 组合(也可以使用快捷键 Alt + Shift + 向右键(Windows)或 Command + Shift + K(Mac))。
完成分组后,工作表左侧会出现分级显示栏和减号(-)按钮,表示当前分组处于展开状态,可以进行折叠。
展开/折叠按钮位置不正确怎么办?
默认情况下,Excel 会将汇总行视为位于明细行的下方。如果你的汇总行位于明细数据上方,分级显示按钮可能会出现在与报表结构不一致的位置。
可以通过以下设置进行调整:
进入 数据 选项卡。
在 分级显示 组的右下角,点击小箭头图标(分级显示设置按钮),打开相关设置。
取消勾选 汇总行显示在明细数据的下方,然后点击 确定。
设置完成后,展开和折叠按钮的位置会与顶部汇总行的布局相匹配。
如何在 Excel 中自动对行进行分组
对于结构较为规则的大型数据集,逐段手动选择行进行分组会比较繁琐。Excel 提供了两种常用的自动分组方式:分类汇总(Subtotal) 和 自动建立分级显示(Auto Outline)。
方法 1:使用分类汇总自动分组
如果需要按某一类别自动划分数据,同时插入求和、平均值等汇总行,可以使用 分类汇总。它可以在生成汇总结果的同时创建可展开和折叠的分级显示结构。
操作步骤
按用于分组的列对连续数据区域进行排序。例如,如果要按 区域 分组,应先按 区域 列排序,让相同区域的数据排列在一起。
点击数据区域中的任意单元格,然后进入 数据 > 分级显示 > 分类汇总。
在 分类汇总 对话框中进行设置:
- 分类字段: 选择用于分组的列,例如 区域。
- 汇总方式: 选择需要使用的计算方式,例如 求和。
- 选定汇总项: 勾选需要计算的数值列,例如 销售额。
点击 确定。Excel 会自动插入分类汇总行,并在工作表左侧生成多级分级显示按钮。
⚠️ 注意:表格限制
通过 Ctrl + T 创建的 Excel 表格中无法直接使用 分类汇总。如果当前数据已经格式化为表格,可以先进入 表设计 > 转换为区域,将其转换为普通单元格区域;如果希望继续保留表格结构,也可以改用数据透视表进行汇总。
方法 2:使用自动建立分级显示
如果工作表中已经存在汇总行,或者明细数据上方/下方已经包含合计公式,可以使用 自动建立分级显示 来自动生成行分组。
操作步骤
确保汇总行中包含能够对应明细数据的 Excel 公式,例如
=SUM()或=AVERAGE()。点击数据区域中的任意单元格,进入 数据 选项卡,点击 组合 旁的下拉箭头,然后选择 自动建立分级显示。
⚡ 提示:
自动建立分级显示依赖能够反映明细与汇总关系的公式(例如 =SUM())。如果工作表中只有普通文本标签或静态值,Excel 通常无法判断层级关系。如果无法自动识别结构,请检查汇总公式,或改为手动创建分组。
如何在 Excel 中创建多级(嵌套)行分组
当数据包含明显的层级结构(例如 年份 > 季度 > 月份)时,单个分组级别往往不够。Excel 支持将行分组嵌套在其他分组中,最多可创建 8 个分级显示级别。
创建多级行分组的步骤
为了让多级结构更清晰,可以先从最小的子分组开始,再将这些分组包含到更大的父级范围中。
创建最内层分组:
- 只选择最小类别对应的明细行,不要包含该类别的小计行。
- 进入 数据 > 分级显示 > 组合(Windows 可按 Alt + Shift + 向右键,Mac 可按 Command + Shift + K)。
创建外层父级分组:
- 确保内层子分组处于完全展开状态,然后选择包含这些子分组的更大范围。不要将更高一级的合计行包含在所选区域中。
- 再次点击 组合,或使用相应快捷键。
继续创建更高层级:
- 按照从较小类别到较大父级类别的顺序重复上述操作。Excel 会自动在工作表左侧显示
1、2、3...等分级编号,最多支持 8 个嵌套层级。
- 按照从较小类别到较大父级类别的顺序重复上述操作。Excel 会自动在工作表左侧显示
如何展开或折叠 Excel 中的分组行
创建分组后,可以通过工作表左侧的分级显示控件决定当前显示多少明细内容。
- 展开或折叠单个分组: 点击减号(-)隐藏明细行,点击加号(+)重新显示明细行。
- 折叠所有明细: 点击分级显示上方的 1,只显示最外层的汇总信息。
- 展开所有明细: 点击最高编号的分级显示按钮。对于嵌套分组,也可以点击中间级别的编号,只显示该层级并隐藏更深层的明细。
⚠️ 注意: 展开或折叠分组只会改变行的显示/隐藏状态,不会删除底层数据或现有公式。
如何在 Excel 数据透视表中进行分组
数据透视表分组与普通工作表中的行分组并不相同。
工作表行分组会直接在原始工作表的行旁添加分级显示控件;数据透视表分组则是在数据透视表内部将字段项组合起来,用于汇总和分析。
数据透视表中常见的分组方式包括:
- 将日期按月、季度或年份分组
- 将数值划分为不同区间
- 将选定的文本项目组合成自定义类别
1. 按月、季度或年份对日期分组
在较新的 Excel 版本中,将日期字段添加到数据透视表后,Excel 可能会自动进行日期分组。如果需要自定义或修改分组间隔,可以按照以下步骤操作:
- 确保日期字段已经添加到数据透视表的 行 区域。
- 右键点击数据透视表中的任意有效日期。
- 选择 组合。
- 根据需要选择一个或多个时间单位,例如:
- 月
- 季度
- 年
- 点击 确定。
如果需要按周分组,请在分组对话框中只选择 日,然后将底部的 天数 设置为 7。
2. 将数值分组为不同区间
如果需要将单独的数值划分为连续区间,例如 ¥0–¥10,000、¥10,001–¥20,000,可以按照以下步骤操作:
- 确保数值字段已经添加到 数据透视表字段 窗格的 行 区域。
- 右键点击其中任意一个数值,然后选择 组合。
- 在分组对话框中设置:
- 起始于: 区间的最小值,例如 0。
- 终止于: 区间的最大值,例如 100,000。
- 步长: 每个区间的跨度,例如 10,000。
- 点击 确定。
3. 将文本项目组合成自定义类别
你也可以手动选择多个数据透视表项目,并将它们组合成自定义类别。
- 选中需要组合的数据透视表项目。如果是不连续的项目,可在 Windows 中按住 Ctrl,在 Mac 中按住 Command 进行多选。
- 右键点击任意一个已选项目。
- 选择 组合。
- (可选)点击生成的分组名称(例如 Group1),然后在顶部编辑栏中输入新的类别名称。
例如,可以将多个产品名称或城市名称组合到一个更大的区域类别中。
故障排除:“不能组合所选内容”
当源字段中存在 Excel 无法正确分组的数据时,可能会出现“不能组合所选内容”错误。常见原因包括:
- 空白单元格
- 日期或数值字段中包含文本
- 错误值(如
#N/A、#VALUE!等) - 数据类型不一致
解决方法: 检查源数据字段,修正或删除无效值,然后刷新数据透视表(数据 > 全部刷新),再重新尝试分组。
使用 Python 批量自动处理多个 Excel 文件中的行分组
当需要处理数十甚至数百个结构相同的 Excel 工作簿(例如月度财务模型或区域销售报表)时,逐个文件手动创建分组既耗时,也容易遗漏。使用 Python 可以将相同的行分组规则自动应用到多个 Excel 文件。
下面的示例使用 Spire.XLS for Python 演示如何以编程方式创建 Excel 行分组,并设置分级显示相关选项。
第 1 步:安装所需库
运行代码前,先通过 pip 安装所需程序包:
1 | pip install Spire.XLS |
第 2 步:使用 Python 批量处理文件夹中的 Excel 文件
下面的脚本会遍历指定目录中的 .xlsx 文件,打开每个工作簿,应用嵌套行分组,然后将处理后的文件保存到输出目录:
1 | import os |
Python 中的可选高级分组设置
还可以根据实际需要,以编程方式调整汇总行位置或分组的折叠状态。
1. 调整展开/折叠按钮的方向
如果汇总行位于明细数据上方,可以通过以下设置调整汇总方向:
1 | sheet.PageSetup.IsSummaryRowBelow = False |
2. 默认折叠分组
如果希望用户打开工作簿时分组默认处于折叠状态,可以将 GroupByRows() 的第三个参数设置为 True:
1 | sheet.GroupByRows(2, 10, True) |
3. 折叠已有分组
如果需要折叠已经存在的行分组,可以使用区域级别的折叠方法:
1 | sheet.Range["A2:A10"].CollapseGroup(GroupByType.ByRows) |
总结
在 Excel 中对行进行分组,可以让包含大量明细数据的工作表更易于阅读和浏览。
可以根据实际需求选择不同的方法:
- 使用 组合 手动整理指定行范围
- 使用 分类汇总 按类别生成汇总和分级显示
- 使用 数据透视表 对数据进行分析和分组
- 使用 Python 自动化 批量处理重复任务
具体选择哪种方法,取决于你需要的是数据整理、汇总计算、分析还是自动化处理。理解这些方法之间的区别后,就可以更灵活地管理不同规模的 Excel 报表和数据集。
常见问题解答
Q1:可以自动对具有相同值的行进行分组吗?
A1:可以。先按目标值对数据进行排序,如果还需要生成汇总行,可以使用 分类汇总。自动建立分级显示依赖已有的汇总结构,并不会仅根据相同的文本标签自动识别分组。本文中的 Python 示例使用的是预先指定的行范围,而不是根据单元格值自动判断分组。
Q2:不添加分类汇总,也可以对行进行分组吗?
A2:可以。直接选择需要分组的行,然后使用 数据 > 分级显示 > 组合 即可。手动分组并不要求存在汇总公式。
Q3:Excel 网页版可以对行进行分组吗?
A3:可以。Excel 网页版支持行分组、嵌套分组以及展开和折叠明细。不过,一些桌面版 Excel 提供的分级显示设置(例如汇总行位置)在网页版中可能不可用。






















