2017-01-16 51 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.根據您對您的目標的描述查詢加載項可能會提供您正在查找的功能)