数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

Norsaa 2020-05-07

https://zhuanlan.zhihu.com/p/66540160

常规分列

我们最常见的就是有固定分隔符的规范数据,这种直接就按照分隔符拆分就可以了,

数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

如果没有分割符怎么办?依然是上面的数据,如果连逗号都没有呢,在Powerquery中还可以按从数字到非数字的转换来分列,

数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

拆分列的常规功能中还可以按大小写字母的转换来进行分列,比如这样,

数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

是不是非常方便呢。

分列到行

有时候数据都挤在一个单元格里,直接分列也可以,会分成一行多列的表,使用起来很不方便。

在PQ中,还可以直接分列到行中,直接点击按字符分列,弹出的窗口中展开"高级选项",拆分为行就可以了,

数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

多种分隔符进行分列

有时候拿到的原始数据很不规范,可能是手工录入的很随意,分割符不只是一种,我们无论选择哪个都没法直接分开,像下图这样,

数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

这时候,仅靠界面功能就难以正确分列了,不过PQ里还有丰富的M函数,这里我们就需要用M函数来完成。

以上图数据为例,碰到这种多中字符分割的情况,就不要再用拆分界面功能了,直接添加步骤,编辑框中输入,

=Table.SplitColumn(
提升的标题, "区号",
Splitter.SplitTextByAnyDelimiter(
{",",";","-","+","。"},
QuoteStyle.Csv
)
)

(其中提升的标题是上一个步骤的名称,使用时要更改为实际的步骤名,字符替换为实际数据的分隔符)

看起来有点长,其实主要是使用了Splitter.SplitTextByAnyDelimiter函数,并把所有的分隔符做成一个列表,作为该函数的第一个参数就可以了,效果如下,

数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

关于分列,主要是找出数据排列的规律,是有固定的分隔符、有固定的字符数,还是有规律的从数字到文本等等,找到规律以后,就按规律进行拆分就可以了。

通过分列的功能也可以看出,PQ的界面功能已经比较丰富了,可以处理大部分的日常需求,不过对于不符合常规的数据,也是要掌握一些M函数才能更随心所欲哦。

相关推荐