- 群里有一问 - 通过Power Query生成数据表,一共两列,要求及示例如下: 1、NR列:第1行为1,后每行比上行递增1..7的随机整数 2、NUM列:1..1000之间随机整数 3、生成的行数可按需要输入 - 解法 - 核心就一个函数:List.Generate let - 这个函数很强大 - - 这个函数很复杂 - - 这个函数记不住 - - 但是 - - 我们可以这样看 - List.Generate有4个参数,虽然每个参数都是一个函数!但是,这4个函数有很明确的分工: 1、确定起点,即要生成列表的第1个值; 2、设定生成序列的终止条件; 3、下一个值的生成规则/结果; 4、转换成最终输出结果(如果直接用参数3的结果,可以省略) - 再来2个帮助文档示例 - - 示例1 - List.Generate( 简单解析: 1、从0开始 2、只要得到的结果小于10 3、那就加1作为结果并直接输出(省略第4个参数) 输出结果:{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } - 示例2 - List.Generate( 简单解析: 1、给定记录[A=1,B=1] 2、如果得到的结果中A小于5 3、那就A+1,B+1;重点:可以用[A]或[B]引用上一结果中的值 4、按需要调整输出结果为A+B;重点:可以通过[A]或[B]引用到每一个结果的值 输出结果:{ 2, 4, 6, 8 } - 总结一下 - 这其实就是一个循环语句,相对复杂的情况下,可以以记录(Record)的方式作为列表的值,因为记录对每个值有明确的字段名称(类似于在循环中定义变量),方便后续的引用和控制。 同时,我突然想,这个其实跟玩游戏的过程很像: 如果你暂时没有能用上这个函数,那也不妨先通过这种方式把这个的几个参数先记住,然后再对上面几个例子动手写几次,很快就会得心应手了。 |
|