2017-01-16 53 views
0

我正在开发一个工具来帮助我的团队识别某些数据文件中的更改。长话短说,我设法把一些东西放在一起(我相当的初学者与powerquery和M),运作良好,但它缺乏用户友好。删除powerquery中的列的动态列表

问题是,并非所有团队成员都需要该工具来检查所有列(不同的人,不同的兴趣)中的差异。为了管理这个我用下面做之前删除所有不需要的列比较:

= Table.RemoveColumns(myTable的,{所有“col1”,“col2上”,“COL3” ...等

这有效,但如果你想改变配置,你需要进入代码并修改列表。

我的问题是:有没有什么办法可以将动态列表整合到这个代码中?列表在易于使用的表格中,“剔除/勾选”你想要的并且将代码移除其余部分?

如果您需要更多信息,我是他再:)

感谢所有帮助提供

回答

0

也许最简单的方法是在查询编辑器使用“选择列”选项卡上,然后重命名,如产生步: #“选择列这里 - --->“= Table.SelectColumns(Source,{”Column1“,”Column2“,”Column3“,”Column5“,”Column7“,”Column8“,”Column9“,”Column10“})

然后,当您想要调整所选列时,您可以按箭头所指向的小轮子,并且会显示一个弹出窗口,您可以从该窗口进行(未)打勾。

另外,如果使用多个查询使用相同的选择,你可以创建一个输出列表,像其他查询:

let 
    Source = Table.FromList(List.Transform({1..10}, each "Column" & Text.From(_)),null,{"Available Columns"}), 
    Transposed = Table.Transpose(Source), 
    #"CHOOSE COLUMNS HERE ----->" = Table.SelectColumns(Transposed,{"Column2", "Column3", "Column5", "Column6", "Column8", "Column9", "Column10"}), 
    TransposedBack = Table.Transpose(#"CHOOSE COLUMNS HERE ----->"), 
    ConvertedToList = TransposedBack[Column1] 
in 
    ConvertedToList 

,然后使用该名单在查询中,像: = Table.SelectColumns(#“Transposed Table”,SelectedColumns) 其中SelectedColumns是包含所选列的查询的名称。

0

如果您的目的是允许用户在不输入查询编辑器的情况下选择列,那么您可以使用如下所述的参数表获益:http://www.excelguru.ca/blog/2014/11/26/building-a-parameter-table-for-power-query/。您应该能够使用一些预定义的列名/数字向用户公开2colxNrow表。您可以使用数据验证将用户输入限制为二进制开/关行为(https://support.office.com/en-us/article/Apply-data-validation-to-cells-29fecbcc-d1b9-42c1-9d76-eff3ce5f7249)。

(P.S.根据您对您的目标的描述查询加载项可能会提供您正在查找的功能)