如何在Excel中按分组汇总连续座位号的最小最大值区间?
在Excel中按分组汇总连续座位号为区间的方法
现有如下结构的Excel数据:
| city | building | floor | wing | seatno |
|---|---|---|---|---|
| blr | egla | 5F | A | 1 |
| blr | egla | 5F | A | 2 |
| blr | egla | 5F | A | 5 |
| blr | egla | 5F | B | 6 |
| blr | egla | 5F | B | 7 |
| blr | egla | 5F | B | 11 |
| blr | egla | 5F | B | 12 |
| blr | egla | 5F | B | 13 |
| blr | egla | 5F | 234 | |
| blr | egla | 5F | 254 |
需要按city、building、floor、wing字段分组,将连续的seatno汇总为座位号区间(seatrange_From为区间最小值,seatrange_To为区间最大值),最终得到如下结果:
| city | building | floor | wing | seatrange_From | seatrange_To |
|---|---|---|---|---|---|
| blr | egla | 5F | A | 1 | 2 |
| blr | egla | 5F | A | 5 | 5 |
| blr | egla | 5F | B | 6 | 7 |
| blr | egla | 5F | B | 11 | 13 |
| blr | egla | 5F | 234 | 234 | |
| blr | egla | 5F | 254 | 254 |
以下是两种可行的实现方法:
方法一:辅助列+数据透视表
适合手动处理小批量数据,步骤清晰易操作:
- 排序数据:选中全部数据区域,点击「数据」选项卡→「排序」,依次按
city、building、floor、wing、seatno升序排列,确保同分组内的座位号是连续递增的。
- 排序数据:选中全部数据区域,点击「数据」选项卡→「排序」,依次按
- 添加区间标记辅助列:假设数据从A1单元格开始(A列=city,B列=building,C列=floor,D列=wing,E列=seatno),在F2单元格输入公式:
=IF(AND(A2=A1,B2=B1,C2=C1,D2=D1,E2=E1+1),F1,F1+1)
按回车后下拉填充整个F列,该公式会为每个连续的座位号区间分配同一个编号,非连续的座位号则生成新编号。
- 添加区间标记辅助列:假设数据从A1单元格开始(A列=city,B列=building,C列=floor,D列=wing,E列=seatno),在F2单元格输入公式:
- 创建透视表汇总:选中包含辅助列的全部数据,点击「插入」选项卡→「数据透视表」,在弹出的窗口中确认放置位置后进入透视表设置:
- 将
city、building、floor、wing拖到「行」区域; - 将辅助列(F列)拖到「行」区域(放在wing下方);
- 将
seatno拖到「值」区域两次:第一次设置为「最小值」,重命名为seatrange_From;第二次设置为「最大值」,重命名为seatrange_To。
- 调整布局:右键点击透视表中的辅助列标签,选择「隐藏」,即可得到目标格式的汇总结果。
方法二:Power Query批量处理
适合数据量较大或需要重复处理的场景,无需手动维护辅助列:
- 导入数据到Power Query:选中数据区域,点击「数据」选项卡→「从表格/区域」(Excel 2016及以上版本支持),确认数据包含表头后进入Power Query编辑器。
- 标记连续区间:
- 先排序:点击「开始」选项卡→「排序」,依次选择
city、building、floor、wing、seatno升序排列; - 添加索引列:点击「添加列」→「索引列」→「从0开始」;
- 添加自定义列「Diff」:公式为
=[seatno]-[Index],同一连续区间的座位号与索引的差值是固定的,以此作为区间标记。
- 分组汇总:点击「转换」选项卡→「分组依据」,设置分组规则:
- 分组依据:选择
city、building、floor、wing、Diff; - 添加两个汇总列:第一个列名设为
seatrange_From,操作选「最小值」,目标列选seatno;第二个列名设为seatrange_To,操作选「最大值」,目标列选seatno。
- 导出结果:删除
Diff列,点击「开始」选项卡→「关闭并上载」,将处理后的结果加载到Excel工作表中,即可得到所需的汇总表。
- 导出结果:删除
内容的提问来源于stack exchange,提问作者user1551426
相关产品推荐
相关产品推荐

