今天我们来聊一下PowerQuery中的迭代函数!PQ是函数式编程,没有很多语言中循环和迭代语法,但是却有对应的函数,有了他可以解决很多算法问题! 这个函数就是:List.Accumulate 官方案例: 我们先来解释一下官方这个累计的小案例,只有看懂了这个最基本的用法,才能进一步灵活引用! 解析说明: 1、第一参数要求的是一个列表,第二参数这个是0,也就是初始值为0 2、第三参数是一个函数,(state,current)=> 计算逻辑,这里state表示每次计算后的结果,也就是下一次的初始值,current表示当前循环的元素! 下面是执行过程: 第1次循环:state = 0,current = 1, 第三参数计算 0 +1 第2次循环:state = 1,current = 2, 第三参数计算 1 +2 第3次循环:state = 3,current = 3, 第三参数计算 3 +3 第4次循环:state = 6,current = 4, 第三参数计算 6 +4 第5次循环:state = 10,current =5,第三参数计算 10 +5 全部遍历完,返回state的值!也就是15 如果你有其他语言的功底,可以辅助你理解 VBA中如下写法: C# 写法如下: Python写法如下: 本文由“壹伴编辑器”提供技术支 有了上面基本的了解,我们来看看这个函数的语法及参数! 语法如下: 这里最核心的就是第二参数是一个any类型,也就是可以是各种类型,包括复合数据类型!! 下面我们通过一些实际案例来巩固! 案例1 | 数据分组 案例说明:把一组数中小于10 和大于10的分成两组!
这个案例主要是进一步认识第二参数的any类型,这里我们使用的是一个list嵌套类型,{{},{}} 第一个用来装小于10,第二个用来转大于10的! 案例2 | 连续数字分成一组 案例说明:连续数值,放到一组!
// 公众号:Excel办公实战 结果: 本文由“壹伴编辑器”提供技术支持 PQ中的M函数还是很有意思的,有兴趣的同学可以研究一下,对于那些觉得编程麻烦,又有一些复杂的需求需要处理时,是一个不错的选择!
|
|