首页 > 技术文章 > 转换…Transform…(Power Query 之 M 语言)

officeplayer 2021-02-13 16:32 原文

转换列:

格式Table.TransformColumns

提取Table.TransformColumns

标准Table.TransformColumns

科学计数Table.TransformColumns

三角函数Table.TransformColumns

舍入Table.TransformColumns

信息Table.TransformColumns

日期Table.TransformColumns

时间Table.TransformColumns

持续时间Table.TransformColumns

提取值Table.TransformColumns

 

处理同行不同列:

  = Table.TransformRows( 表, 转换函数)

    示例:生成新的两列,姓名列是原姓名列与部门列合并,总计列是个人缴纳列加公司缴纳列

      = Table.FromRecords(Table.TransformRows( 表,each [姓名= [姓名] & [部门], 总计= [个人缴纳]+ [公司缴纳]]))

 

转换列表:

  = List.Transfrom( 列表, 转换函数)

     示例:返回26个字母的列表

      = List.Transform({65..90},Character.FromNumber)

    示例:返回列表中的数字保留0位小数

      = List.Transform( {14.99,15.21}, Number.Round)

    示例:返回列表中的数字除以1000后保留两位小数

      = List.Transform( {1499..1520}, each Number.Round( _ /1000, 2))

  = List.TransformMany( 列表, 转换列表, 函数)

    示例:列出列表中所有数字的3次方

      = List.TransformMany( {1..9}, each {3}, Number.Power)

        将列表中的每个值计算Power,次方数由第二参数决定

    示例:列出列表中所有数字+2

      = List.TransformMany( {1..9}, each {2}, (x,y)=>x+y)

        x是List中的元素,y是第二参数获得的元素

 

转换记录:

  = Record.TransformFields( 记录,{{ "字段1", 转换函数1},...,{ "字段n", 转换函数n}}, 处理不存在的字段)

    示例:将记录中“列1”的字母全部大写

      = Record.TransformFields( 记录,{"列1", Text.Upper})    

推荐阅读