Power Query里的匿名函数是什么鬼?这个例子最典型了。

小勤:我现在有个按营业额不同等级的提成比例表,怎么用Power Query读到营业额数据表里?如下图所示:

大海:这个问题如果是在Excel里的话,用Lookup函数非常简单。

小勤:这我知道啊,但我要考虑跟其他数据处理过程都做成全自动的,所以还是考虑用PQ来处理,但PQ里却好像没有Lookup函数。

大海:嗯。虽然PQ里没有Lookup函数,但是,用PQ处理也不复杂,主要是使用Table.SelectRows和Table.Last函数来实现。写法如下:

Table.Last( Table.SelectRows( 提成比率表, (t)=>t[营业额]<=[营业额] ) )[提成比例]

其实现思路如下:

1、用Table.SelectRows函数筛选提成比率表里营业额小于数据源表当前行营业额的所有数据,类似于在Excel中做如下操作(比如针对营业额为2000的行,到提成比例表里取数据):

那么,Table.SelectRows的结果如下图所示:

2、在Table.SelectRows得到相应的结果后,我们就可以用Tabe.Last该结果的最后一行,即:

3、得到筛选表最后一行后,要取提成比例,即可以直接用“提成比例”字段名来得到。

小勤:Table.SelectRows函数感觉有点难啊,里面为什么有个(t)=>t[营业额]<=[营业额]?

大海:这其实是Table.SelectRows进行筛选表操作时的条件,这相当于将一个自定义函数用于做条件判断,其中的(t)表示将提成比例表作为参数,而t[营业额]表示提成比例表里的营业额列,而最后面的[营业额]指的是数据源表里的营业额,这里面注意不要搞乱了。如下图所示:

实际上,你还可以先写一个自定义函数,然后直接在Table.SelectRows里面进行引用,具体写法如下:

后面就可以引用该自定义函数完成数据的匹配,如下图所示:

小勤:嗯,这种分开编写自定义函数的感觉好像更容易理解一些。

大海:PQ里的函数式写法跟Excel里的公式不太一样,慢慢适应就好了。

(0)

相关推荐

  • 根据身份证号码查询户口本上所有人的信息

    昨天在群里丢了个问题,是关于一对多查找的,虽然关于查找的话题永远都没有停止过,不过在工作中对于查找来说也是家常便饭,尤其是类似于人力资源这种部门.来看看题,原始数据如下: 需要根据提供的身份证号码查找 ...

  • Power Query里的判断语句,其实和IF函数是一样的

    小勤:大海,PowerQuery里有if函数吗?这可是太常用了. 大海:在PowerQuery里可是没有if函数哦,不错有if-then-else-语句.跟Excel里的if函数的3个对应参数是一样. ...

  • 多表合并(Power Query、SQL、函数与公式、VBA四种方法)

    工作中有时候需要将多张工作表合并到一张工作表,本文总结了四种方法:Power Query 工具.SQL.函数与公式.VBA,四种方法难度依次递增. 方法一:借助Power Query工具 史上多表合并 ...

  • Excel Power Query里的月份排序问题

    小勤:像这种月份的排序问题怎么办? 大海:这种排序问题在Excel里面可以直接处理了,像这样: 小勤:那如果在Power Query里呢?这些数据其实我是在PQ里做了很多其他处理的,最好能直接在PQ里 ...

  • Power Query里怎么得到当前行的所有内容?

    小勤:Power Query里怎么动态地得到当前行的所有内容? 大海:不是直接用下划线就可以了吗? 小勤:不是啊,直接用下划线得到的是一个记录,你看: 我只要其中的内容啊,不要带着列名的记录(Reco ...

  • 当Power Query里的名称中有一些特殊字符,怎么办?

    『 从一个简单问题说起 』 昨天,在某个群里看到一个提问,意思是用Power Query新建了一个查询,但想在M语言(函数)里引用的时候,不知道该怎么写,如下图所示: 显然,这个问题在于:名称里有特殊 ...

  • Power Query里多条件判断时需要注意的null值处理问题

    小勤:为什么这个对折扣按条件分级的判断结果会出错啊? 大海:你这折扣中有空值(null)啊. 小勤:那不是判断语句的最后用else处理了吗?null值的结果不就应该是"低"嘛? 大 ...

  • Power Query里的循环引用

    小勤:Power Query怎么也有"循环引用"? 大海:有互相引用的地方就可能有循环引用啊.你这里是不是在"公众号"的表里引用了"年龄"表 ...

  • Power Query里如何实现按条件计数?

    昨天的文章<PQ-M及函数:如何按某列数据筛选出一个表里最大的行?>发表后,有朋友留言,问在PQ里怎么实现Excel中的Countif效果: 实际上,也许这位朋友已经隐约感觉到,用文中提到 ...

  • Power Query里怎么按条件求和(Sumif)?动不动就给3个解法!

    前段时间,发过文章讲过[在Power Query里按条件计数--CountIf]的实现方法,现在,我们再来扒一扒按条件求和--SumIf的实现,而且方法贼多,这里给出3个(其实主要是视频课交流群里朋友 ...