power query插件应用案例(二)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了power query插件应用案例(二)相关的知识,希望对你有一定的参考价值。

参考技术A 对于数据分析,工作簿或工作表合并是我们经常遇到的问题,但不同的数据结构往往有不同的应对方式。合适的处理方式,也唯有如此,才能带来理想效果。例如下图中,要将数十个分公司的数据汇总到同一张表内,再利用Power BI建立可视化动态图表。仅单纯地手工复制粘贴不仅显得效率低下,还容易造成数据缺失,但借助power query插件则能轻易取得数十份工作簿的所有数据,并且还可实现数据的自动更新。

Step1:打开汇总工作表,点开Power query选项卡,选择数据来源,[从文件]→[从文件夹],将保存数据的文件夹直接导入power query查询编辑器。

Step2:在[选择数据源]内找到该文件夹,单击“编辑”按钮,进入“查询编辑器”,其操作界面如下图所示:

Step3:点击“开始”选项卡,选中“content”列,在“删除列”中将其他所有列删掉,仅保留该列。

Step4:点开“添加列”选项卡,选择“自定义列”,在弹出的“添加自定义列”对话框内新建新列名称及自定义列公式:[=Excel.Workbook([content],true)]。其中,函数Excel.Workbook每个单词首字母必须大写,参数[content]是双击或插入“可用列”来完成的。最终效果可见下图。

Step5:点击“清单”列的扩展按钮,不勾选“使用原始列名作为前缀”,再点击“确定”。

Step6:继续选中“Data”列,通过“删除其他列”将多余的列去掉,再次点击该列右上角的扩展按钮,将数据完全扩展开来。此时,将得到文件夹内所有工作簿汇总的数据。最后,在“开始”选项卡内点击“关闭并上载至”将数据添加到数据模型内,通过powerpivot插件做进一步地处理。

power query展开表时动态获取要展开的列

参考技术A power query在有表需要展开时,如何直接界面操作,会按照列名一个一个展开,这种方式一旦原数据表中的列发生改变,则就会容易报错,需要在手动进行修改,非常不方便。

那么有没有能动态获取想展开的列的办法呢?

答案当然是有,先来看下思路:

下面分2个场景介绍

场景一:展开所有列

其中列名是新增的一个变量,用来获取所有的列名的list, Table.ColumnNames() 为获取表列名的函数, 删除表名称列0[读取数据] 表示 删除表名称列 这个表的 第0行 的 读取数据 列

场景二:有选择的展开列

根据场景一的方法,我们只用对列名按需要的条件筛选即可完成,此时直接使用List.Select()函数对列名的list进行选择即可

这里举个非null的例子,其他的条件可自行揣摩

自此,我们再也不用担心因为表列名的变化导致查询报错的问题。

以上是关于power query插件应用案例(二)的主要内容,如果未能解决你的问题,请参考以下文章

powerquery不自动转换

powerquery的sum公式

powerquery中使用原始列名作为前缀 啥意思?

Power BI-Power Query实现九九乘法口诀

Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

ELK简介 es集群部署 es插件应用