PQ-M及函数:结合前期案例,学习自定义函数

小勤:《单个格式化表单转数据明细》的方法学会了,赶紧给我讲一下怎么实现批量的转换吧。

大海:不着急嘛,要实现批量的转换,需要学点儿新的知识——自定义函数。

小勤:自定义函数?就是自己写函数?

大海:对的。学会了自定义函数怎么写和怎么用,以后做一些批量的东西处理就很方便了。

小勤:好啊。

大海:首先咱们拿个简单的例子来看看,还记得拿个《模拟Excel中的Trim函数》吗?

小勤:嗯,为了实现Excel里的Trim函数对中间多个空格保留一个的情况,嵌套了好几个函数。

大海:对的,如果要经常用的话,这样每次都套n个函数就会比较麻烦,所以可以考虑写一个自定义函数。我们先来看看原来那个公式是怎样的:

小勤:嗯。这个是其中Select方法的,那如果用自定义函数怎么办?

大海:这个公式里,实际就是将“[内容]”放进来,就会转换为想要的结果,所以,如果我们把“[内容]”变成一个参数,然后按照PQ的格式给自定义函数加上名字等,那它就变成自定义函数了,具体改动如下:

1、       复制原公式到高级编辑器的let后面;

2、       增加自定义函数名称、参数格式化语句:MyTrim = (str) =>

3、       将原公式中的“[内容]”改为我们设定的参数名称str

修改后如下图所示:

这样,自定义的函数MyTrim(str)就写(改)好了,单击“已完成”后,步骤里多了MyTrim,如下:

当你单击"MyTrim"这个步骤时,会出现函数调用的窗口:

咱们先不管它,先看看怎么用。比如我们把原来用长公式的步骤删掉:

然后,重新添加自定义列,用咱们自己的函数来实现:

得到的结果是一样的,你试一下?

小勤:啊。太好了,以后再要这样用,就可以直接简单地写了。

大海:自定义函数除了能在后续的引用中用起来更加方便之外,很多时候还能实现原来函数嵌套无法实现的功能,比如一些复杂的引用和批量的数据处理等等。

小勤:嗯。咱们刚才是用一个现成的公式直接改的,如果完全自己写怎么办?

大海:首先,咱们要记住PQ里的自定义函数的基本结构:

函数名 = (参数1,参数2,…) => 函数体

小勤:嗯。这个写法也简单。那再举个小栗子?

大海:好的。比如咱们要写一个函数,用来做取一个数据表(Table)的第1行第1列(假设列名为"Column1")位置的数据,那么,就要将数据表作为参数,写法如下:

d_1_1 = (t) => t{0}[Column1]

小勤:啊,表作为参数然后可以直接按原来表行列引用的方式写?

大海:嗯。其实就是原来的公式怎么写就怎么写,将需要变为参数的地方改为你定义的参数就好了。

小勤:基本理解了。

大海:你再熟悉一下,尝试自己动手写写自定义函数,然后咱们就开始搞格式化表单的批量转换问题。

小勤:好的。



Power系列基础精选

Excel入门动画系列001-020

Power Query入门精选20篇

Power Query进阶精选20篇

Power Query实战精选20篇

M语言及函数入门精选20篇

数透到Power Pivot精选15篇


(0)

相关推荐