在 上一篇讲Power BI提取飞书多维表数据文章 的末尾,留了一个没有解决的问题,怎么解决超过500行的数据的提取。先做个铺垫,用个例子简单地讲解一下List.Generate
的工作过程。
示例代码
let
源 = {1,2,3},
a=List.Generate(
()=>[cum=源{0},index=0], //第1参数
each [index] < 2, //第2参数
each [
cum=[cum]+源{index},
index=[index]+1
], //第3参数
each [cum] //第4参数
)
in
a
以上代码返回 {1,3}
List.Generate
的工作过程为:
- 根据第 1 参数,生成初始值
[cum=1,index=0]
- 开始第1次循环,计算第 4 参数,结果为1
- 根据第 2 参数,判断是否满足其条件。
0<2
满足。将2.
中第4参数的值,加入到结果的列表中。 - 根据第 3 参数,生成为下一次循环准备的值。
[cum=1+{1,2,3}{1}, index= 0+1]
,也就是[cum=3, index= 1]
- 开始第2次循环,计算第 4 参数,结果为3
- 根据第 2 参数,判断是否满足其条件。
1<2
满足条件,将3加入结果列表中。 - 根据第 3 参数,生成为下一次循环准备的值。
[cum=1+{1,2,3}{2}, index= 1+1]
,也就是[cum=6, index= 2]
- 开始第3次循环,计算第 4 参数,结果为6
- 根据第 2 参数,判断是否满足其条件。
2<2
,不满足条件条件,不再往结果列表中添加新的元素。
按此推算,结果为{1, 3}