山不让尘,川不辞盈
PowerQuery自带的M函数无法满足数据处理需求时,我们可以自定义M函数。
自定义函数的基本语法是:函数名=(参数1、参数2、参数3…)=>表达式。
创建自定义函数
如果只需要创建函数,可以省略函数名,Power Query默认以查询名称为函数名。以下是两个简单的函数示例:
括号()里面指定参数,参数至少一个,多个参数用逗号分隔。as 限定参数数据类型,as number可以省略不写,不写则输入的参数可以为任意类型。“=>”是固定组合,可以理解为带参数赋值。
将以上代码分别复制到高级编辑器中,将返回类型为函数(fx)的查询。
自定义函数
如果自定义函数包含多个步骤,在函数内部需要用到let表达式定义步骤及返回结果。以下函数包含两个步骤,用let表达式定义计算过程,用in返回最终计算结果:
自定义函数的调用
自定义函数调用与内嵌M函数调用方法一样,可以在函数中输入参数直接调用。在输入参数对话框中,初始输入数字1,结束输入数字10,单击"调用"就生成了1到10的连续数字列表。
还可以在其他查询中调用。将刚刚生成的列表转换成表,然后通过「添加列」选项卡中「调用自定义函数」功能调用自定义函数。
调用自定义函数
也可以在新建自定义列中通过函数名调用。新建自定义列调用自定义函数「加2」让全部列中的数字全部加2。
新建自定义列
M函数可以直接作为其他M函数的参数。当函数的参数只有一个时更方便,直接将函数名作为参数传递就可以了,无需参数,甚至括号也可以省略。
自定义函数同样也可以。假设我们需要让销售数据表中大于100的单价都乘以0.98,可以在查询中直接定义并调用自定义函数。
百余篇优质原创文章练习文件;
365天不限次数答疑;
持续更新的杂志级图表制作方法及源文件;
历次分享的优秀可视化仪表板模板。
…………
领取专属 10元无门槛券
私享最新 技术干货