0

我正在开发一种工具来帮助我的团队识别某些数据文件中的更改。长话短说,我设法将一些东西放在一起(我是 powerquery 和 M 的初学者),效果很好,但它缺乏用户友好性。

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

= Table.RemoveColumns(myTable,{"col1","col2","col3"... etc

这可行,但如果您想更改配置,您需要进入代码并修改列表。

我的问题如下:有没有办法将动态列表集成到这段代码中?即在一个易于使用的表格中列出列,“勾选/取消勾选”你想要的那些,然后让代码删除其余的?

4

2 回答 2

1

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

(PS 根据您对目标的描述,Inquire 插件可能已经提供您正在寻找的功能)

于 2017-01-19T21:25:16.080 回答
0

可能最简单的方法是在查询编辑器的主页选项卡上使用“选择列”,然后将生成的步骤重命名为:#"CHOOSE COLUMNS HERE ----->" = 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 是带有选定列的查询的名称。

于 2017-01-16T15:47:31.980 回答