對錶格的列進行批量處理的函數詳解

Table.TransformColumns

Table.TransformColumns(table as table, transformOperations as list, optional defaultTransformation as nullable function, optional missingField as nullable MissingField.Type) as table

  • 第1參數是需要操作的表;
  • 第2參數是需要改變的列及操作(正常情況是由列名和操作函數組成,也可以是空列表);
  • 第3參是去除第2參數中指定後剩餘的列所需要進行處理的函數;
  • 第4參數是找不到第2參數指定的列標題時是忽略處理(1)還是返回錯誤處理(0)。

例1:

此函數的必要參數只有2個,所以我們先用最基礎的2個參數來進行操作。

對錶格的列進行批量處理的函數詳解

如果要把成績統一減10分的話,那就在第2參數這裡使用列名和對應的操作函數即可。

<code>Table.TransformColumns(源, {"成績", each _-10})/<code>
對錶格的列進行批量處理的函數詳解

例2

如果是需要進行多個列的操作,可以在第2參數中使用多次對應的寫法,並在最外面用符號{}括起來。

如果除了成績要減去10,還需要在學科後面加上字符“(上)”。

<code>Table.TransformColumns(源,                      {                       {"成績", each _-10},                       {"學科",each _&"(上)"}                      })/<code>
對錶格的列進行批量處理的函數詳解

例3

第3個參數是一個函數,是在第2參數指定列以外表格中的所有列需要進行的操作。

在前面的操作中,成績列和學科列都有了操作,那剩餘其他列(姓名列)也需要進行操作,那就要使用到第3參數了。

<code>Table.TransformColumns(源,                        {                         {"成績", each _-10},                         {"學科", each _&"(上)"}                        },                        each _&"A"                      )/<code>
對錶格的列進行批量處理的函數詳解

例4

第3參數是針對除了第2參數指定的剩餘列進行操作,那第4參數就是指定列如果找不到的話,是返回錯誤還是忽略錯誤。

如果第2參數的中的學科寫錯或者定義了其他未在操作表中的列名,則可以通過第4參數來控制返回。

<code>Table.TransformColumns(源,                        {                         {"成績", each _-10},                         {"班級", each _&"(一)"}                        },                        each _&"A",                        1                     )/<code>
對錶格的列進行批量處理的函數詳解

因為指定的列裡有 “班級”,但是在原來的表格中不存在,所以會產生錯誤,但是第4參數有指定1,也就是忽略錯誤,最終返回的結果如圖所示。除了找到的成績列表外,其餘的列數據都在後面添加了個“A”。

對錶格的列進行批量處理的函數詳解

如果第4位參數指定的是0,或者省略默認,則會返回錯誤。

對錶格的列進行批量處理的函數詳解

例5

如果是想讓所有的列都進行同樣的操作,也就是不指定列,使得把所有列都是作為其他列來處理,使用的是第3參數來進行操作的話,此時第2參數可以直接使用空列來表示,也就是不指定列。

<code>Table.TransformColumns(源, {}, each _&"A")/<code>
對錶格的列進行批量處理的函數詳解

因為使用的文本合併,而成績是數字格式,所以導致出現錯誤值。

例6

因為第3參數是針對所有未指定的列來進行操作,如果有些指定列不想操作,只想保留的話,那指定列可以使用each _來進行保留。

<code>Table.TransformColumns(源, {{"成績", each _-10},{"姓名", each _}}, each _&"A")/<code>
對錶格的列進行批量處理的函數詳解


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


分享到:


相關文章: