美文网首页PowerQueryexcel数据分析
power query展开表时动态获取要展开的列

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

作者: 深海农夫 | 来源:发表于2018-12-04 09:00 被阅读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)

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

    相关文章

      网友评论

        本文标题:power query展开表时动态获取要展开的列

        本文链接:https://www.haomeiwen.com/subject/lfwpcqtx.html