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

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)

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容