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参数这里使用列名和对应的操作函数即可。
代码语言:javascript复制Table.TransformColumns(源, {"成绩", each _-10})
例2
如果是需要进行多个列的操作,可以在第2参数中使用多次对应的写法,并在最外面用符号{}括起来。
如果除了成绩要减去10,还需要在学科后面加上字符“(上)”。
代码语言:javascript复制Table.TransformColumns(源,
{
{"成绩", each _-10},
{"学科",each _&"(上)"}
})
例3
第3个参数是一个函数,是在第2参数指定列以外表格中的所有列需要进行的操作。
在前面的操作中,成绩列和学科列都有了操作,那剩余其他列(姓名列)也需要进行操作,那就要使用到第3参数了。
代码语言:javascript复制Table.TransformColumns(源,
{
{"成绩", each _-10},
{"学科", each _&"(上)"}
},
each _&"A"
)
例4
第3参数是针对除了第2参数指定的剩余列进行操作,那第4参数就是指定列如果找不到的话,是返回错误还是忽略错误。
如果第2参数的中的学科写错或者定义了其他未在操作表中的列名,则可以通过第4参数来控制返回。
代码语言:javascript复制Table.TransformColumns(源,
{
{"成绩", each _-10},
{"班级", each _&"(一)"}
},
each _&"A",
1
)
因为指定的列里有 “班级”,但是在原来的表格中不存在,所以会产生错误,但是第4参数有指定1,也就是忽略错误,最终返回的结果如图所示。除了找到的成绩列表外,其余的列数据都在后面添加了个“A”。
如果第4位参数指定的是0,或者省略默认,则会返回错误。
例5
如果是想让所有的列都进行同样的操作,也就是不指定列,使得把所有列都是作为其他列来处理,使用的是第3参数来进行操作的话,此时第2参数可以直接使用空列来表示,也就是不指定列。
代码语言:javascript复制Table.TransformColumns(源, {}, each _&"A")
因为使用的文本合并,而成绩是数字格式,所以导致出现错误值。
例6
因为第3参数是针对所有未指定的列来进行操作,如果有些指定列不想操作,只想保留的话,那指定列可以使用each _来进行保留。
代码语言:javascript复制Table.TransformColumns(源, {{"成绩", each _-10},{"姓名", each _}}, each _&"A")
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。