Power Query中@的用法—递归

2020-03-23 18:36:17 浏览数 (1)

(一) 含义

在Power Query中@是表示范围运算符,通常在使用递归时运用其自身。

(二) 一般使用

把函数自身参数运用于其他函数。

例1:

(x) =>@Number.From(x) 10

解释:定义一个调用自身参数并转换成数字格式并 10的函数。这种写法实际上和不指定是一样的,因为参数本身未进行变化参与到后期的运算。

例2:

(x)=>@Text.From(x)&"有限公司"

解释:调用自身参数后进行后缀添加上有限公司。

(三) 循环使用

例1:累加求和

fx=(x)=>if x<=1 then x else @fx(x-1) x

解释:因为涉及到循环,需要制定一个循环结束条件。此函数为正数累加求和。

从1累计到5进行求和。

次数

X初始

x-1

X终值

1

5

4

9

2

4

3

12

3

3

2

14

4

2

1

15

例2:累计乘积

如果一个股票目前的市场价格是10元,如果连续5个涨停能达到多少价格呢?

代码语言:javascript复制
fx = (price, day)=>[现价=1.1*price,
                    终值=if day=0 then price
                         else @fx(现值,day-1)]
                   [终值]

解释:这里我们有2个变量参数在进行运算,一个是价格,一个是涨停天数。对于多变量的,我们可以通过Record格式来进行记录。同时if的then是作为结束判断语句,else是作为循环运行的计算公式。

次数

Price初始

Day初始

现价

Day终值

终值

1

10

5

10*1.1=11

4

11

2

11

4

11*1.1=12.1

3

12.1

3

12.1

3

12.1*1.1=13.31

2

13.31

4

13.31

2

13.31*1.1=14.641

1

14.641

5

14.641

1

14.641*1.1=16.1051

0

16.1051

0 人点赞