添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

原标题:列名变了PowerQuery报错?你需要这样改

PowerQuery很强大,但也非常容易出错,尤其是初学者,经常会碰到不知道做了什么突然就报错了,然后就不知道怎么办,刚刚燃起的学习劲头可能因此而退却甚至放弃了,所以我将整理一些常见的错误以及解决的办法,帮你轻松应对各种报错问题。

今天介绍一个很多人经常问的问题,源文件的列名修改以后,在PowerQuery中刷新很可能会报错,来看看这种情况该如何处理。

假设数据源是下面这个Excel文件,一个简易的订单表数据:

导入到PQ以后是这样的界面:

如果源数据格式不发生变动,刷新是正常的,不会出问题。

但是假如源数据的列名被修改了,比如最后一列的"金额",修改成了"销售额",PQ刷新后将报错:找不到表的"金额"列。

你肯定见到过这种错误,应该怎么处理呢?

最直接的方法就是将数据源修改的列名再改回来,如果无法修改源数据,你可以重新导入处理一遍,但是假如整理的步骤非常多,那么因为这个小小的错误而重新做一遍就太浪费时间了,其实我们只需要找出报错的步骤,相应的修改M公式就可以了。

下面来看看如何修改M。

从上到下用鼠标依次点击右侧的步骤,检查是从哪个步骤开始出错的,这里例子中,点到第三个步骤“更改的类型”,发现是在这个步骤开始报错的:

然后在公式编辑栏中,可以看到有个代码是更改“金额”列的数据类型,

但是由于数据中不存在这一列,所以导致报错了。

如果你提前并不清楚数据源的列名被更改过,那么也就不知道具体被更改成什么名字,这时可以去查看这个步骤的上一步,该列的列名到底是什么:

点击上一步“提升的标题”,在这个界面,可以看到最后一列的列名是“销售额”,确实是不存在“金额”列,那么这个报错原因就很清楚了,只需要将“更改的类型”这个步骤公式中的“金额”,改成“销售额”就行了,报错消失:

这样就把错误解决了,并不需要去修改源文件或者重新导入一遍。

其实熟练掌握以后,只需要根据这个报错信息,点几次鼠标就可以找到错误原因,不需一分钟就可以处理掉错误。

以上方法不仅适用于修改列名引起的报错,只要你看到PQ界面出现报错,都可以按这种方式一个个步骤去排查,从出错步骤的编辑栏公式中找原因并相应修改。

以上是直接将M中的原列名修改为新列名的方式,但是如果这个列名经常被改动,比如明天又被人改成了"金额"、后天又改成了"销售收入",那么每次刷新都会报错,都要手动去修改也挺麻烦。

还有一种做法是用M函数提取这一列的列名,比如这个示例中,最后一列的列名"销售额",就是"提升的标题"这个步骤表的第4列,

"提升的标题"这个步骤表的第4列的列名可以用这个M公式替代:

Table.ColumnNames(提升的标题){3}

Table.ColumnNames返回表中所有列名组成的一个列表,PQ中,表是从0行开始的,第一行的行号是0,第4行的行号是3,所以上述公式中,提取列名表的第4行,用的是{3}。

然后将出错步骤的列名,也就是将之前错误的“金额”替换成这个M公式:

这样,无论源数据中第四列的列名被别人怎么改,都不会再报错了。

如果有其他列的列名同样可能会被修改,你都可以相应的将具体的列名替换为M公式, 只要在每个步骤的M中不出现源数据中具体的列名,PQ报错的概率就会大大降低。

不过这种方法的前提是你清楚哪列的列名可能会被更改、列的前后顺序位置是不变的,如果你的数据源每一列的列名都可能会被修改,甚至每一列的位置也会发生变动,那么这种方式就不适用了,可能还是需要你去检查出错的步骤手动修改。

对于最后这种情况,我想你该做的不是去找各种PQ技巧去应对杂乱无规律的数据,而是去规范你的数据源,不要让别人随意更改,将格式固定下来才是明智的做法。

更多精彩内容

巧用微软输入法,轻松为Power BI可视化添加图标

Power BI父子函数怎么用?利用这个场景轻松学会

Power BI 如何连接OneDrive的数据?

采悟 | PowerBI星球 返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
发布于: 河南省