PowerQuery中的变量你用过吗?Excel中也可以用

您看看需不需要 2024-04-30 03:45:46

使用DAX进行计算分析时,我们经常会用到变量VAR,关于它的介绍可参考:

学会VAR,你就离掌握DAX更近了一步

关于VAR,我犯了一个错误

那么在M中有没有类似VAR定义变量的做法呢?

其实也是有的,它就是let in表达式。

如果你打开过PowerQuery的高级编辑器,对它们肯定不陌生,里面的代码都是以let开头、以in表达式结束的。

语法非常简单:

let

变量列表

in

结果表达式

比如:

let

x=2,

y=x*3,

z=2*x+y

in

z

结果是10.

平时在PQ建自定义列的时候,也可以通过变量的方式来分步骤实现,比如前面介绍的计算上一个订单日期的例子,当时用DAX的变量是这样写的:

这种计算除了前面用PowerQuery一步写出来,也可以用let定义变量的方式,分步骤实现:

let

a=[产品名称],

b=[订单日期],

c=List.Max(

Table.SelectRows(

更改的类型,

(x)=>x[产品名称]=a and x[订单日期]<b

)[订单日期]

)

in

c

结果是完全一样的。

以上就是PowerQuery中变量的用法,功能与VAR一样,只是一个是在M环境中使用,一个在DAX环境中使用。

在具体写法的细节上,有下列区别:

VAR定义变量,每定义一个变量,就要写一个VAR;而let 只需写一次,就可以定义多个变量VAR返回结果用的是RETURN;let返回结果表达式用的是in;VAR 定义变量后可以直接换行,不需要写逗号,而let定义的变量结尾都要写个逗号,再定义下一个变量(最后一个变量不需要写逗号),这其实也是DAX和M基本语法的区别。

0 阅读:0

您看看需不需要

简介:感谢大家的关注