无码实现​从非数字到数字拆分到行,是怎么做到的?| Power Query技巧

2022-11-07 18:44:21 浏览数 (1)

在Power Query里,拆分列的功能非常强大,除了按分隔符、字符数等基本拆分功能外,还支持如从大写到小写或相反,从数据到非数字或相反等等特殊方式,相信很多朋友也都使用过:

其中,按分隔符拆分,有一个比在Excel里强大很多的选项:拆分到行!但是,在几个特别的拆分功能中,如从数据到非数据,却没有拆分到行设置。

那么,如果要实现像下面这样,拆分到行,该怎么办呢?

实际上,如果我们理解了Power Query的工作原理,要实现起来并不难。下面,我们就直接通过案例步骤来讲解操作方法:

Step-01 重复列

因为我们要考虑保留原数据列,所以,先对列进行重复。

Step-02 按分隔符拆分列

虽然我们最后要按“从数字到非数字”进行拆分,但是,我们要借助按分隔符可以拆分到行的方法

在按分隔符拆分中选择拆分为“行”:

此时,我们通过观察可以发现,生成的步骤中,其实是通过一个splitter函数来实现拆分的,而“到行”是通过Table.ExpandListColumn函数进行扩展得到的:

所以,如果我们改变了其中的Splitter参数,就能实现不同方式拆分到行的功能!

但是,要自己去写这些Splitter函数,还是比较麻烦的,而且,我们也没有必要自己动手去写,生成一个步骤去复制就可以了——

Step-03 按照从非数字到数字的转换拆分列

此时,我们看步骤的公式,明显,其中也带了Splitter的参数:

这样,我们可以选择这个Splitter参数,并复制:

Step-04 替换前一步骤“按分隔符拆分列”中的Splitter参数

回到“按分隔符拆分列”的步骤,粘贴替换掉原来按分隔符拆分的Splitter参数,马上就得到从非数字到数字的拆分到行的效果:

Step-05 删掉按从非数字到数字拆分列的步骤

生成这个步骤的目的是为了方便复制其中的Splitter参数,复制好了就可以删掉了:

Step-06 按从数字到非数字拆分列,得到最终结果

我经常讲,Power Query的使用,大多数情况下,并不需要自己大量去写代码,很多步骤的M代码,都是可以通过操作生成,然后再按需求稍作修改即可——M代码不是写出来的,是改出来的!

关键在于,你是不是对Power Query这些常用的基础功能足够熟练,并且理解它背后的基本原理——

熟,能生巧!

熟,能无码!

0 人点赞