scan和reduce
浅谈出口账务和excel函数
=SCAN(0, B2:B7, LAMBDA(a, x, a + x))
· 数组 = B2:B7:依次处理 120、85、130、95、140、110;
· a + x:用上一步结果加当前值,得到新结果。
步骤 当前值 x 上一步累加器 a 计算 a + x SCAN 输出
第3步 130 205 205 + 130 335
第5步 140 430 430 + 140 570
第6步 110 570 570 + 110 680
=SCAN(0, B2:B7, LAMBDA(a, x, a + x))
{120; 205; 335; 430; 570; 680}
=REDUCE(0, B2:B7, LAMBDA(a, x, a + x))
· SCAN:把每一步的 120、205、335、430、570、680 全留下来
=SCAN(1000, D2:D6, LAMBDA(a, x, a + x))
步骤 当前收支 x 上一步余额 a 新余额 a + x 输出
第1步 -200 1000 1000 - 200 800
第2步 -150 800 800 - 150 650
第3步 +300 650 650 + 300 950
第4步 -100 950 950 - 100 850
这就是“余额滚动”:每一行都能看到“到这一笔为止,账户还剩多少”。
=SCAN(1, A2:A4, LAMBDA(a, x, a * x))
=SCAN("", A2:A4, LAMBDA(a, x, IF(a = "", x, a & "、" & x)))
第2步 李四 张三 张三 & "、" & 李四 张三、李四
第3步 王五 张三、李四 张三、李四 & "、" & 王五 张三、李四、王五
=SCAN(初始值, 数组, LAMBDA(累加器a, 当前值x, 用a和x算新值))
它会把数组挨个处理,并把每一步的新 a 都输出出来。
=SCAN(0, B2:B7, LAMBDA(a, x, a + x))
REDUCE 只给最后的 680;SCAN 把 120、205、335、430、570、680 全摊开给你看。