当前位置: 首页 > 工具软件 > mPower > 使用案例 >

Power Query学习笔记-M函数

呼延高超
2023-12-01

Power Query的界面操作只能发挥其能力的20%,剩余80%的能力均要依靠M函数来实现。M函数约600多个(2022年已经700多个了,对比一下,Excel函数才200来个),M函数被放在不同分类下,所以函数的名字中间会有一个点·,点前面是分类,点后面是处理内容。

学习M函数分为两个阶段。
第一个阶段目标,会改M函数。可以通过更改界面操作生成的M函数的参数内容,重新组建函数的生成顺序来满足自身数据处理需求。
第二个阶段目标,会写M函数。充分理解M函数的变量、语法结构(let…in结构),处理逻辑的基础上,随心所欲使用M函数来解决问题的方法。必须具备改写经验之后才能进阶到的水平,单靠学习很难达成。

改M函数方法:

  1. 通过编辑栏、添加自定义列、高级编辑器等功能了解M函数表达式的写法。
  2. 根据需求重新编辑表达式程序。
  3. 编辑错误通过“查询设置”区域退回重新编辑。
  4. 如何查看M函数列表?答:在“开始”-“新建源”-“其他源”-“空查询”,建好一个空查询,并在编辑器中输入“=#shared”即可查看M函数列表。(没有excel给出fx查询来得方便,在power query的查询界面中的编辑栏,也可以看到fx,但注意,点击这里的fx并不会出现函数列表,它是“生产一个空的操作步骤”的意思)

M函数官方参考网址(英文)

案例:在一列身份证号码数据中创建出性别、生日数据列。
第一步:创建性别列,并提取出身份证号码第17位数字
鼠标操作:“添加列”选项卡下“提取”(我的EXCEL版本是2016,没有这个“提取”,因此只能写M函数了)

函数写法:
Table.AddColumn(重排序的列, “性别”, each Text.Range([身份证号码],16,1))

第二步:数据类型转换(文本→数字)
Table.TransformColumnTypes(已添加自定义,{{“性别”, Int64.Type}})

第三步:数字提取之后做奇偶识别
鼠标操作:“转换”选项卡-编号列选项-信息-偶数

函数写法:
Table.TransformColumns(更改的类型1,{{“性别”, Number.IsEven, type logical}})

第四步:数据类型转换(数字→文本)
Table.TransformColumnTypes(校验的为偶数,{{“性别”, type text}})

第五步:替换
鼠标操作:“开始”选项卡-转换-替换值

函数写法:
Table.ReplaceValue(更改的类型2,“true”,“女性”,Replacer.ReplaceText,{“性别”})

 类似资料: