用PowerBI做分析报告,不可避免会遇到数据源变动的问题,比如数据源存放的路径发生变动,这种情况下可以利用参数进行路径的动态化,参考:
还经常被问到的问题是,有些人可能刚开始分析的时候,用的是一个Excel文件作为数据源,但之后文件格式变了,比如改用了csv文件作为数据源,或者把数据源都放到了文件夹里,需要变为文件夹作为数据源,这些情况应该怎么处理呢?
直观的做法,就是重新做个查询,不过如果处理步骤很多,这样重复操作一遍就太浪费时间了,其实我们可以通过修改M公式来直接变更数据源。
下面以这两种情况为例来介绍一下如何修改,当然前提是数据本身是不变的,这样才能利用之前数据清洗的步骤自动刷新。
从Excel文件变更为csv文件
对于导入的Excel文件,打开高级编辑器,
在高级编辑器中记录有这个数据从导入到处理的每个步骤的M代码,从Excel工作簿获取数据时,导入数据的步骤是前两行,如下图框住的部分。
数据源从Excel变更为Csv,只需要修改这两行的公式就可以了。
但是可能很多人都记不住M函数,不会直接输入M公式修改,那应该怎么办呢?
我们可以利用PQ来生成csv文件导入的公式,具体做法就是再导入一下csv文件,导入后可不用做任何整理,打开高级编辑器,复制源这个步骤的M公式,下图中框住的部分。
然后粘贴替换掉上面Excel查询里框住的部分,替换后的代码如下:
其中Excel查询,“提升的标题”这个步骤中,之前引用的是上个查询的步骤名,这里替换后只有一个步骤,所以直接改成“源”即可。
通过上面简单复制粘贴,就成功地将原来的Excel数据源替换成了csv数据源了。
从Excel文件变更为文件夹
这是个更常见的需求,前期可能只有一个Excel文件,随着数据量的增加,有很多相同格式Excel文件需要先合并到一起,这种情况可以所有的文件放到一个文件夹里面,我们就需要将原来的Excel数据源替换为文件夹数据源。
这种替换与上面的思路一样,同样新建个查询,从文件夹获取数据,并将文件夹中的表解析出来,合并成一个表(不用做进一步的整理,因为整理步骤原来的查询已经做过了),关于从文件夹合并Excel的具体的步骤可以参考:
批量合并Excel,PowerQuery的这些技巧你应该掌握
导入文件夹中的文件并合并以后,打开高级编辑器,复制里面的相关代码:
然后替换粘贴到原来的Excel数据源查询中(也要注意更改下一个步骤中所引用的上一个步骤的名称)。
这样就能将原来的Excel数据源更换为文件夹的方式。
上面主要是介绍替换的思路,其中高级编辑器的公式也不一定完全照搬,有些特殊情况可能还要根据实际的数据格式以及整理的具体步骤,进行相应的微调。
关键是要对自己的数据足够熟悉,并掌握基本的PQ操作,虽然不需要对M函数很精通,但是理解每个步骤公式的大概含义,并对整理后的数据进行必要的检查验证,确保整理的数据可以满足分析的需要。
关于PowerQuery的更多技巧:
联系客服