又是一个Power Query列表展开的例子

又是一个Power Query列表展开的例子

我们之前讲过在Power Query中使用Expression.Evaluate函数展开列表的办法:

又是一个Power Query列表展开的例子

这种方法在处理数字列表的时候非常方便,我们只需要对原始文本做替换组成一个Power Query列表的样子就好。

今天我们要讲的方法是自定义函数,展开列表。

又是一个Power Query列表展开的例子

如上图,最后一列,如果是空格或逗号,那么就是单个的列表,如果是~或者-就是连续列表,我们要做的工作就是展开成为单个的值:

又是一个Power Query列表展开的例子

K列就是我们展开之后的结果。

如果都是空格或逗号分隔的字符串展开成列表,我们只需要一个函数就可以Text.Split函数,使用函数之前我们先统一一下分隔符,把空格替换成逗号。

又是一个Power Query列表展开的例子

接下来我们来单独处理连续列表的情况,把“~“替换成“-“,

又是一个Power Query列表展开的例子

然后我们来讲一下思路,我们观察所有的数据,发现有两种情况,一种是上图这样的,最后一个字母是变化的,前缀不变。还有一种情况是,最后一位数字变化,前缀不变。

这两种情况对我们来说都一样,我们要做的就是取出最后一位,建立一个列表,然后加上前缀就好了。

首先我们用短划线拆分开字符串:

又是一个Power Query列表展开的例子

然后取出最后一位组成列表:

又是一个Power Query列表展开的例子

Text.Split(t,"-"){0}就是上面一行尾号是A的字符串,

Text.Split(t,"-"){1}就是下面一行尾号是A的字符串。

然后我们要逐个地加上前缀:

又是一个Power Query列表展开的例子

然后我们把这个过程制作成一个自定义函数:

又是一个Power Query列表展开的例子

(t) => List.Transform({Text.End(Text.Split(t,"-"){0},1)..Text.End(Text.Split(t,"-"){1},1)},(x)=>Text.Start(t,Text.Length(Text.Split(t,"-"){0})-1)&x)

最后我们到原始表开始做最后的拆分列表处理:

首先就是之前提过的替换,就是统一分割符,逗号或短划线:

又是一个Power Query列表展开的例子

然后添加自定义列:

又是一个Power Query列表展开的例子

其实很简单,就是我们要对位置这一列先用逗号拆分一次,形成列表,然后用List.Transform函数去逐个处理列表中的字符串,如果字符串中含有短划线,就是需要我们用自定义函数处理的,不含短划线的就用大括号包裹一下,方便我们最后用List.Union函数合并所有的列表。

又是一个Power Query列表展开的例子

然后我们展开列表就可以了:

又是一个Power Query列表展开的例子

下载链接:

链接: https://pan.baidu.com/s/1PlaL3QF_LQzR0hvvg6aUCQ 提取码: 7r1h

展开阅读全文

页面更新:2024-04-12

标签:观察所   例子   列表   前缀   括号   逗号   空格   字符串   包裹   函数   字母   思路   原始   情况   数字   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top