如何在Excel Power Query中实现自定义预分组(pre-groupings)
Power Query 按销售代码灵活前缀分组实现方案
核心实现逻辑是将分组规则从查询逻辑中剥离,做成独立可编辑的规则表,后续调整规则不需要修改查询步骤,新数据自动匹配分组,全程不需要写复杂代码,新手也能维护。
操作步骤
1. 新建可维护的分组规则表
在Excel当前工作簿的空白区域新建一张两列表格,勾选「表包含标题」,两列分别命名为前缀匹配值、分组名称,按你的需求填入规则即可,示例如下:
- 前缀匹配值填
123-,对应分组名称填123系列组 - 前缀匹配值填
1234-,对应分组名称填1234系列组
填完之后把这张表加载到Power Query编辑器,将查询命名为分组规则表后上载(不需要导出到表格,仅创建连接即可)。
后续要新增、修改、删除分组规则,直接在这张Excel表里改就行,比如后续要把567-开头的销售代码归为新组,直接在表尾加一行对应规则即可,不需要动后续的查询步骤。
2. 给原始业务表匹配分组
打开你原始业务报表的Power Query查询,点击「添加列」-「自定义列」,列名设置为所属分组,在自定义列公式框输入以下M代码:
= List.First( Table.SelectRows( 分组规则表, (rule) => Text.StartsWith([Sales Code], rule[前缀匹配值]) )[分组名称], "未匹配分组" )
公式逻辑说明:逐行读取当前业务表的销售代码,去规则表中查找第一个满足「销售代码以对应前缀开头」的规则,返回对应的分组名称;如果所有规则都匹配不上,自动标记为未匹配分组,方便后续排查漏配的规则。
注意:规则的匹配优先级和规则表的行顺序一致,如果存在前缀包含关系(比如同时配置了
12-和123-两个前缀规则),把更长、精度更高的前缀放在规则表的靠前位置,避免匹配错误。
3. 执行分组统计
匹配完分组列之后,直接选中所属分组列,点击工具栏的「分组依据」,按你的业务需求选择聚合方式(比如统计每组的订单量、总销售额等)即可。
方案优势
- 维护成本极低:不需要每次新代码出现就修改拆分、分组逻辑,改规则表刷新就生效,类似
123-4这类同前缀新代码会自动归入对应分组 - 适配性强:不需要提前拆分销售代码列,不会因为横杠后的编号位数不一致(比如1位、2位甚至更多位)导致匹配错误
- 异常易排查:所有不符合现有规则的销售代码都会归入「未匹配分组」,不会出现漏统计的情况
内容的提问来源于stack exchange,提问作者Rachel K
相关产品推荐
相关产品推荐

