这个PowerQuery数据整理技巧,你应该会用到

当我们把Excel中的数据导入到PowerBI中,常常会遇到,数据莫名的变了,比如这列数据,在Excel中是这样显示的:

当把这个excel导入到PowerQuery编辑器后,你很可能看到的数据是这样的:

数据前面的0自动消失了,为什么会出现这种情况,以及如何避免呢?

这是因为数据导入后,PowerQuery自动检测并更改了数据类型,对于数值的数据,最前面是不会显示0的,你可以在右侧看到这个步骤:

那么解决的办法也非常简单,直接把“更改的类型”这个步骤删掉,数据就恢复为与Excel一样的格式了:

更彻底的做法是,将自动检测数据类型的功能禁用,在文件>选项>数据加载中,勾选“从不检测未结构化源的列类型和标题”:

这样设置以后,系统就不会自动检测并调整数据类型了。

不过系统不自动调整,并不是数据类型就不需要调整,在数据上载到模型之前,你仍应该根据分析的需要,手动将每个字段调整为正确的类型。

接着上面的问题再说一个技巧,如果有一列数据本来就是这样的文本:

如果需要将这样的数字,调整为8位代码,不足8位的,前面用字符0补齐,应该怎么做呢?

这种情况下有个M函数专门做这种计算,它就是Text.PadStart,用于在字符串前面补充指定的字符。

添加自定义列,写法如下:

Text.PadStart([编码],8,"0")

就得到了8位编码的效果:

如果把这个问题反过来,先有一个8位编码的字段,我们需要把前面的字符0都去掉,这些0的个数是不同的,并且在后面部分也有可能会出现0,是不能去掉的,所以不能用分列的方式来实现。

对于这种情况,仍然有M函数专门处理:Text.TrimStart,它用来清除文本字符串中的前导相同字符。

添加自定义列:

Text.TrimStart([8位编码],"0")

效果如下:

以上就是几个简单的PQ技巧,对于PowerQuery,在熟练操作界面功能的基础上,掌握一些常用的M函数,可以帮我们快速的完成数据整理。

更多PowerQuery技巧:
文本处理技巧:移除和提取
PowerQuery:空值(null)运算的的解决思路
批量合并Excel,PowerQuery的这些技巧你应该掌握
(0)

相关推荐