Excel 中利用 PowerQuery 实现数据整理
消息来源:baojiabao.com 作者: 发布时间:2026-02-15
原文标题:《哪位 Excel 高人琢磨出的这个数据整理技巧,太有用了!》
小 E 做了一场「直播惊喜活动」,结束后有许多快递需要发。
为了节约物流成本,他信心满满的跟老板说:可以将相同订单数据汇总合并后,一起发货。
老板一听,决定全程交由他搞。这下好了,可怜的小 E 不仅要搞数据,还要打包一堆快递,非常的头疼。
在之前的文章,我们给大家分享了函数和方方格子插件法。
今天,小爽就来给大家介绍一下其他的方法,看看利用 PQ,我们是如何解决这个问题的。
PS:PowerQuery (简称 PQ),是 Excel 2016 及以上版本自带的插件,M 函数是 PQ 中的函数叫法。
由于存在同个信息有多笔订单数据的情况,为了简化问题的难度,方便大家理解,我们先制作一个汇总辅助表。
温馨提示:PQ 的做法,需要涉及到几个基础的 M 函数,不过也不难~
分组依据
使用 PQ,自然是需要先将数据源导入到 PQ 编辑器里面啦!
选中辅助表的表格区域,在【数据】选项卡下,单击【来自表格 / 区域】,单击【确定】按钮。
进入到 PQ 编辑器后,下一步,就是要进行分组啦。
PQ 中的分组问题,我们用到的是分组依据功能~
👉 何为分组依据?
分组依据的功能,有点像数据透视表,对指定字段数据进行筛选统计。它可以指定多个字段作为条件,也可以同时统计多个结果。
分组依据可以支持的统计方式包括:求和,平均值、最小值,非重复行计数和所有行。
知识点补充完毕,大家跟着我来看看操作~
选中需要分组的列,也就是我们的姓名和手机列,在【转换】选项卡下单击【分组依据】。
出现分组依据对话框。
新列名:发货数量
操作:所有行
这个时候,我们可以看到表格按照姓名和手机号分组后,多了一个发货数量列。
发货数量列中每一行的 Table 里面就包含了当前行筛选后的表格数据。
按行合并
分组后的类型 type 后面的内容对全局不影响,为了代码简洁性可以删掉。
删掉后,公式更简洁~
=Table.Group源,{"姓名","手机号"},{{"发货数量",each_}})each_中的下划线就代表每一行中的筛选后的表的数据。
紧接着,如下图所示,我们需要把分组后发货数量这一列里面,筛选后的数据表中的产品名称和汇总个数用星号 (*) 一一进行合并。
如下图:
=Table.Group源,{"姓名","手机号"},{{"发货数量",eachTable.ToList(_,(x)=x{2}&"*"&Text.From(x{3}))}})Table.ToList(_,(x)=x{2}&"*"&Text.From(x{3}))Table.ToList 函数主要是将表中每一行的产品名称和汇总个数进行处理。
其中,
产品名称在每一行索引中的第 2 个;
汇总个数在每一行索引的的第 3 个。
👉 Table.ToList 函数是?
Table,是表的意思,ToList,是转换列表的意思。这个函数就是用来处理每一行数据的。
Table.ToList 有两个参数:
=Table.ToList表,(x)=x)x 代表每一行形成的列表
小 Tip:
上面我加大了一点点难度,其实我们也可以事先在辅助表中先把产品名称和汇总个数进行合并了。这样大家应该更容易理解。
将辅助表导入分组后,直接取合并的列就可以了。
列表合并
最后一步,就是将合并后的产品名称和汇总个数,整个列表用分隔符合并起来。
在原先的基础上,需要利用 Text.Combine 函数将 list 用逗号进行合并。
👉 Text.Combine 函数是?
Text,是文本的意思,Combine,是结合的意思。这个函数就是用来文本连接的!
Text.Combie 有两个参数:
=Text,Combie文本序列分隔符
案例中,加一个 Text.Combie:
=Table.Group源,{"姓名","手机号"},{{"发货数量",eachText.Combine(Table.ToList(_,(x)=x{2}&"*"&Text.From(x{3})),",")}})如果有做合并列的辅助表。
=Table.Group源,{"姓名","手机号"},{{"发货数量",eachText.Combine([合并],",")}})到这里就搞定啦~
如果不想要有辅助表的做法,就需要两层分组,思路跟前面是一样的,就是多加了个 Table.Group 分组,学有余力的小伙伴可以试试。
let源=Excel.CurrentWorkbook(){【Name="表 1"】}【Content】,分组的行=Table.Group源,{"姓名","手机号"},{{"发货数量",eachText.Combine(Table.ToList(Table.Group_,{"产品名称"},{{"a",(x)=Text.From(List.Sum(x【商品数量】)}}),(y)=y{0}&"*"&y{1}),";")}})in分组的行最后的话
本文主要讲解了「如何用 PQ 解决复杂合并同类项」的问题,为了简化问题,文中制作了一个辅助表。
其中涉及以下知识点:
❶ 分组依据,能够将多字段进行汇总合并统计,如果想要返回所有行,在操作中选所有行就可以了。
❷ Table.ToLIst 可以对表中每一行数据进行进一步操作。
❸ Text.Combine 主要就是通过指定分隔符合并列表。
本文来自微信公众号:秋叶 Excel (ID:excel100),作者:小爽
2023-02-12 18:59:56相关文章
炒港股要补交多少税?我也接到催交补税特别行动的电话了2025-07-23 17:36:43
淘宝天猫仅退款属于诈骗吗?淘宝天猫开始部分取消仅退款2024-10-01 13:01:28
哈啰app借钱|哈啰借钱app下载安装免费小小上当和电话骚扰2024-10-01 11:22:38
白嫖党|山西大同大学学生网购申请“仅退款”被拒骂客服一小时2024-09-27 09:10:44
北大数学教授袁新意《姜萍事件的疑点分析》点评姜萍板书 阿里巴巴竞赛受质疑2024-06-28 10:07:40
天猫新规可以无条件申请“仅退款”了?淘宝天猫又离狗多多零元购近了一步2024-06-28 09:27:13
美国法院裁定阿里须为Squishmallows玩具侵权案答辩2023-12-28 19:59:34
小米汽车传员工3700人 雷军称小米汽车不可能卖9万92023-12-28 19:41:57
国家新闻出版署:认真研究《网络游戏管理办法(草桉徵求意见稿)》关切 实行前进一步完善2023-12-28 19:14:56
印度以打击金融犯罪为由逮捕了两名 vivo 高管2023-12-26 16:49:01
在国外微信收不到国内信息?微信和WeChat将被拆分2023-12-15 10:40:15
苹果iPhone15 系列手机发布最新消息 预计上市发布时间9月2023-08-06 23:21:02
华为将发布鸿蒙HarmonyOS4操作系统 功能五大升级支持设备清单2023-08-06 23:17:37
整治自媒体网红账号 400万粉丝网红发布擦边视频被无限期封禁2023-07-12 09:56:09
网传微信文件传输助手是真人是真的吗?微信官方回应2023-06-27 15:53:32
电信移动送手机成了“信用购”?你上了运营商的贷款套路了吗?2023-06-12 17:18:55
中国电信广东地区崩了无信号 客服回应已在核实处理2023-06-08 15:39:04
消息称小米新能源汽车价格表正讨论定价区间:双版本不同配置,高配或超 35 万元2023-03-06 12:56:03
华为因制裁被传或分拆剥离手机业务? 内部人士回应:可能性不大.2023-03-05 23:26:41
OPPO正式发布安第斯智能云,让终端更智能2023-02-24 16:02:27














