如何在Power Query中批量添加自定義列?

一般情況下,我們如果需要添加列,可以一列一列根據需要進行添加,那如果我們需要根據固定的需求進行批量添加,那如何操作呢?

原始表

如何在Power Query中批量添加自定義列?

結果表

如何在Power Query中批量添加自定義列?

我們在添加的列的時候,有2個主要參數,一個是標題,一個則是添加列裡的內容,如果我們需要進行批量添加的話,這2個參數最好是作為變量進行循環填充。我們來看下如何操作吧。

首先我們要確定Table.AddColumn裡的2個參數,這2個參數應該是批量的,那代表著應該是列表的格式。

我們通過記錄的格式來作為參數組。

如何在Power Query中批量添加自定義列?

這樣就把參數組歸類在一起了,方便我們後面進行調用。之後就是進行循環操作了,我們來看下代碼公式。

List.Accumulate({0..列數}, 
源,
(x,y)=>Table.AddColumn(x,
參數組[標題]{y},
each 參數組[內容]{y}
)
)

這裡還需要解釋幾個內容:

1. 列數:需要增加多少列,就根據相應的填寫。

2. x代表的是表格,也就是增加列後的表格名稱,初始值是原始表格。

3. y代表的是第幾次的循環,0代表第一次,同時也是作為參數組裡的列對應值的位置。

4. each代表的是作為Table.AddColumn函數中所對應的。

這樣我們就很很容易的可以進行批量進行所需要添加的列。

需要注意的幾個地方:

1. 標題和內容必須匹配

也就是在參數組裡的2個參數必須項目數一樣(可以通過if語句在執行前進行判斷)

2. 如果需要在添加列裡使用公式,則函數參數設置成表類型。

因為在循環添加列時表是重複調用的,所以如果把表設置成函數的參數,方便後期循環調取使用。

我們以最簡單的 [價格]*1.1這個公式為例。如果需要在添加列中使用這個公式,那我們可以設定自定義函數 (x)=>x[價格]*1.1,這樣之後我們可以直接以表為參數進行替代。

此時我們的參數組裡的內容則是函數類型。

如何在Power Query中批量添加自定義列?

在循環公式裡,我們還需要注意兩點,

  • 一個就是使用公式進行參數的調用。
  • each這裡需要更改成其他方式書寫。
  • 賦值常數和函數的書寫方式批量也不一樣

例如:

each 改成(a)=>格式,另外直接賦值常數和函數的書寫方式也不一樣,所以要進行判斷區分。當然你也可以統一寫成函數模式,直接調用。

例如:

如果要返回true,則可以直接使用公式(x)=>true,到時候直接使用參數調用的方式即可,不管參數是什麼,返回的都是true。

如果覺得有幫助,那麻煩您進行轉發,讓更多的人能夠提高自身的工作效率。


分享到:


相關文章: