PowerQueryexcel数据分析

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

2018-12-04  本文已影响17人  深海农夫

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

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

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

通过函数来获取需要展开的表的所有列名,然后通过对列名进行判断后获取想要展开的列的list,展开时选择该list即可。

下面分2个场景介绍

场景一:展开所有列

let

    源 = ivr_data{[表名称="10086热线运营通报日报表"]}[表数据],

    删除表名称列 = Table.RemoveColumns(源,{"表名称"}),

    列名=Table.ColumnNames(删除表名称列{0}[读取数据]),

    #"展开的“读取数据”" = Table.ExpandTableColumn(删除表名称列, "读取数据", 列名, 列名)

in

    #"展开的“读取数据”"

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

场景二:有选择的展开列

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

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

列名=List.Select(Table.ColumnNames(删除表名称列{0}[读取数据]),each _<>null)

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

上一篇下一篇

猜你喜欢

热点阅读