前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Query中批量处理操作(3)

Power Query中批量处理操作(3)

作者头像
逍遥之
发布2020-03-23 17:43:12
6310
发布2020-03-23 17:43:12
举报
文章被收录于专栏:数据技巧数据技巧

(一) List.Accumulate

List.Accumulate(list as list, seed as any, accumulator as function) as any

第1参数是需要批量运算的列表(循环次数也是依据项目数);第2参数是初始值及计算后的数据(在第一次运算前需要给赋予一个初始值用于运算,第一次运算完后则赋值为代表运算后结果);第3参数是运算的函数。由至少2个变量组成,1个是第2参数,1个是需要处理的1参数循环列表。

例:

List.Accumulate({1..3},0,(x,y)=>x)=0

List.Accumulate({1..3},0,(x,y)=>y)=3

解释:x相当于第2参数,格式也是和第2参数相同。y代表的需循环的列表,返回的是循环处理最后一项的返回的值。因为这里第3参数没做处理,所以返回的也就是y的最后一项的值。

List.Accumulate({1..3},0,(x,y)=>x+y)

=List.Accumulate({1..3},0,(初始值,列表中的值)=>初始值+列表中的值)

=((0+1)+2)+3=6

解释:x代表第2参数的初始赋值,y代表需要处理的循环列表,也就是参数1的数据{1..3}。变量名称可以自己取,但是需注意位置。

第1次运算前,第2参数被赋值为0,所以第3参数计算结果为0+列表中的第一项1=0+1=1

第2次运算时,第2参数被赋值为上一次的运算结果1,所以第3参数计算结果为1+列表中的第二项2=1+2=3

第3次运行时,第2参数被赋值为上一次的运算结果3,所以第3参数结算结果为3+3=6

最终返回列表项目最后一个运算完成后的结果。一共运行的次数为列表1中的项目数,次项目数一共为3个,也就是1,2,3的值。

List.Accumulate({List.Sum},{1..3},(x,y)=>y(x))

=List.Sum({1..3})=6

解释:第1参数是列表,但是列表里面的值可以任意,所以如果需要在列表里面的值是函数则需要在外面套一层{}改变其表面格式。y代表的是第1参数列表内每一个循环值,在这里显示的是公式List.Sum。所以y(x)表示的就是List.Sum({1..3})=6

List.Accumulate({1..5},1,(x,y)=>y*x)=120

解释:这个是典型的阶乘计算,5!=((((1*1)*2)*3)*4)*5=120。得到一个结果作为值再做下一步运算。

List.Accumulate({"a".."c"},"",(x,y)=>x&y)=abc

解释:请注意第2参数为""空文本而不是null空值。 第一次运算是""&a,运算后的结果="a"

第二次的运算是"a"&"b",运算后的结果是="ab"

第三次的运算时"ab"&"c",运算后的结果是="abc"

此时第1参数项目里的内容全部运行完毕,返回最后的运算结果也就是"abc"。

List.Accumulate({"a".."z"},"abc123aef",(x,y)=>Text.Replace(x,y,"z"))=zzz123zzz

解释:此公式的作用是把小写英文字符全部替换成z。

第一次运算是Text.Repeat("abc123aef","a","z"),用z替换a,处理后的结果是“zbc123zef”

第二次运算是Text.Repear("zbc123def","b","z"),用z替换b,处理后的结果是"zzc123zef"

以此类推把英文小写字符全部替换完成。

List.Accumulate({1,2,3},"a",(x,y)=>x&"b")

=(("a"&"b")&"b")&"b"

="abbb"

解释:因为第3参数的函数中y不涉及到计算,所以y的值也就是列表中的值不做处理,但是列表中的项目是循环次数的依据。所以需要循环3次,返回最终的结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (一) List.Accumulate
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档