datatables 将两个字段合并_PQ实战 | 同类项的合并与拆分

今天主要是通过一个常见的案例来熟悉一下Power Query中的文本处理

直接看一下 需求说明:同类项的合并与拆分 d0aa0f96d940ad3f21116944a2d6d296.png 实现的方式有很多种,之前写过专题,链接放文末有需要全面了解的,扩展阅读! 本篇主要还是介绍Power Query中如何实现,会用到很多常见的文本处理的M方式,有兴趣的同学一定要好好阅读。 演示方式 :动画(Gif),为了更直观的看到,小编是如何写的全过程! 我们先说合并如何处理,非常常见的需求,也就是从左->右 合并同类项 71c7c1cd1324f68cdcade62b2bfa70fd.png

加载数据到PQ编辑器

【数据】-> 【自表格/区域】 ,一般会出现提示,创建表格,点击确定,如果第一行是标题,勾选首行标题即可 d41a7294ba001d884ba762a5afb8c46f.gif

写合并的M函数

= Table.Group(源,"类别",{"合并",each  Text.Combine(_[ 名称],"/")})
b9982b7fda709a4f50b93468b5475dcd.gif M函数整体比较简单,这也是我们为什么推荐大家慢慢去学习PQ的原因之一!具体我们还是来带着大家一起学习一下: PQ中的函数叫做M函数,是一种函数式编程,他的命名方式和Excel不同 严格区分大小写: 每个单词的首字母全部大写 ,如果写成小写报错 有编程基础的同学应该知道,这种叫做帕斯卡命名法,也叫做大驼峰命名法 表示方式: 类别.函数名 的方式。 整个需求的实现,我们使用到两个函数: Table.GroupText.Combine 我们就本次说引到的参数做一些说明,具体还是需要大家去详细学习的 425a689f742610a2b49e44918648aee4.png Table.Group Table.Group 函数:必学函数之一 官方语法: Table.Group (                      table as table, key as any,                        aggregatedColumns as list,                       optional groupKind as nullable GroupKind. Type,                        optional comparer as nullable function                ) as table 翻译一下 就是: Table.Group(表,分组字段,分组聚合,分组模式,比较形式) 我估计还是看不懂,后面两个参数属于可选字段,进阶阶段我们会用到,目前我们就说说前三参数! Table.Group(表,分组字段,分组聚合) 第一参数 :需要分表的表(table) 第二参数 :分组依据的字段名称,如果只有一个我们直接使用文本的表示方式,比如案例中的"类别",但是如果按照多个字段分组就需要使用list,比如 {"大类","名称"}  就表示按照大类和名称两个字段为依据分组! 第三参数 :分组后新的字段名称和处理表达式组成,{标题名称,聚合处理} 如果有多个,需要再嵌套一组大括号 {{标题1,聚合1},{标题2,聚合处理2},……} 以上就是我们对Table.Group大体语言的介绍,如果是0基础可能要先了解一下什么是 table、record 和list(三大容器) 425a689f742610a2b49e44918648aee4.png Text.Combine Text.Combine比较简单,大类是文本类,Combine直接翻译就是合并 看一个示例就能明白: 语法:Text.Combine(需要合并的文本列表,分隔符) 分隔符参数可以不写,默认就是直接合并 46e780887fc9aa9fcc3f0d8df7fb4c84.png 比较简单,不再啰嗦! 按分隔符拆分 71c7c1cd1324f68cdcade62b2bfa70fd.png 想到拆分,英文单词首先想到应该就是Split,如果你学习其他语言或者VBA,应该都不陌生,在PQ中也是使用Split,并且是文本处理,所以应该是Text.Split来拆分处理! 下面我们就来做一个逆向操作,如何拆分!
= Table.ExpandListColumn(Table.TransformColumns(自定义1,{{"合并", each Text.Split(_,"/")}}),"合并")
dea8ba3c4a18c4e7fae17f65e1d3bf38.gif 我们也来解释一下其中的含义,核心就是Text.Split语法和Text.Combine一样,但是他们干的完全相反的事情。 然后就是第一个函数 :Table.TransformColumns 首先是table类函数,Transform在PQ中非常常见,意思是转换,翻译过来就是转换列,他的语法也简单, 语法: Table.TransformColumns(表,{{需要转换的字段名1,转换逻辑1},{需要转换的字段名2,转换逻辑2}) 案例中只有一组,就是拆分合并列! 最后是 Table.ExpandListColumn,翻译一下就是按哪一列list展开 list都是行拓展展开,record是列,table是行列展开,这个大家未来都会学习到!本案例中,是把处理后的表,按照合并字段行上展开,拆分出来的有几个就扩展几行! 语法: Table.ExpandListColumn(表,需要展开的列名) ---------------推荐阅读------------------

合并:合并同类项方法大全

拆分:按分隔符拆分还原

ac4e33ce4d5ae9e254befaafde1e962f.gif ac4e33ce4d5ae9e254befaafde1e962f.gif ac4e33ce4d5ae9e254befaafde1e962f.gif分享、点赞、在看三连

9b8fcb8c4ffbd5a729c3448263011832.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值