打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
来个Power Query小题练练思路!

需求:把数据展开,并从小到大排序!

“-”表示数据数据区间,比如20-30,表示20到30 这11个数字!


第一步:按照逗号分割

在Excel工作表函数中没有文本分割函数,处理文本类问题非常的痛苦,M函数中有Text.Split等函数,可以轻松按照指定字符分割!

语法:Text.Split(文本,分隔符)

结果:返回按照指定分隔符分割后的列表

下一步,我们就来遍历处理列表,把短划线替换成“..”列表的语法糖!

第二步:遍历列表,转成对应的列表

List.Transform(a,each '{' & Text.Replace(_,'-','..') & '}')

作用是转成列表格式!

想要真正变成列表,需要使用 Expression.Evaluate 来点睛

Expression.Evaluate 和VBA中的Evaluate 的有点类似,可以把文本表达式转成可以计算的表达式!比如案例中,我们只是构建除了List的表示方式

但是无法计算, Expression.Evaluate 处理后则可以计算,比如列表的展开等等!

关于列表的语法糖,

可以看前面写过的文章:PQ实战 | Power Query中如何构建日期列表

第三步:合并列表并排序

List.Combine(b)

List.Combine 把多个列表合并成一个,下一步排序即可!

List.Combine更加基础的案例

排序,直接使用List.Sort,默认就是升序,所以不用加第二参数!

如果是降序,第二参数使用 Order.Descending

List.Sort(c)

排序好,我们需要合并到一个单元格中!

第四步:合并到一个单元格

Text.Combine(List.Transform(d,Text.From),',')

合并直接可以使用Text.Combine即可,但是这样都是数字,Text.Combine要求是文本,所以我们要使用Text.From把数字转成文本,再合并!

肯定有新手会问,关于List.Transform 第二参数在这里的用法问题,直接写了一个函数名称,一般都是each 函数+参数!为什么,申请情况下可以这么写?

首先参数必须是function,也就是函数,其实上下文正好对应这个函数的参数!比如我们上面一般写成 each Text.From(_),此时遍历的元素正好是Text.From的唯一参数,没有歧义!

List.Transform官方案例:

本文由“壹伴编辑器”提供技术支持

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Power Query 文本批量替换
基本函数
Excel数据整理,最高效的工具无疑是她!
第三十一节【Text】Text.Combine 【文本合并】
最重要的文本函数text的进阶用法1
用Power Query实现汉字转拼音——两个方法,一个简单,一个效率高
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服