321运用WPS/Lambda及Scan函数实现动态数组累计需求分析

职场计划有古哥 2024-03-07 10:21:56

PMC在进行数据分析时,经常需要对全年各个月份的各种需求进行累计需求分析,即把每个月的需求数量加总起来,形成一个累计的数值。这种累计需求通常用于观察趋势,并与实际的生产、销售或其他预期目标进行对比,以评估实际表现是否达到预期。管理者可以利用这些累计数据来制定未来的策略或决策,例如调整生产计划、预测未来的需求等。

以A工厂为例,该工厂上半年计划每月销售目标为500万。在实际销售中,1月到3月的销售额分别完成为:460万、380万、580万。因此,从1月到3月的累计销售额分别是:460万、840万、1420万。对应的累计比例则分别是:15%、28%、47%。这样,PMC就能够更加清晰地了解销售趋势,以便更好地进行决策。

案例数据如下图1所示:

图 1

这种累计需求的计算公式如何在表格中设计呢?古老师分享三个种方法,其中最后一种方法最为高效。

单元格内容锁定法

这个方法是比较直接的方法,通过求和函数SUM,配合锁定第一个求和范围开始的单元格加上填充公式的方法来实现。

录入公式:

C5=SUM($C$4:C4),向右填充

C6=C5/SUM($C$3:$H$3),向右填充

函数释义:

$C$4:这是一个绝对引用。$ 符号在分别在列号C和行号4左边,表示单元格的列和行都被固定了。无论你怎样拖动或复制这个公式,$C$4 都会始终指向C列第4行的单元格。

C4:这是一个相对引用。没有 $ 符号的单元格引用会随着公式的复制或拖动而改变。例如,如果你把这个公式向右填充一个单元格,C4 会变成 D4。

当你把这个公式向右填充时WPS表格会自动调整公式中的单元格引用,以反映新的位置。因为 C4 是一个相对引用,所以当你向右填充时,它会变成 D4,E4,F4,等等,取决于你填充了多少个单元格。这样就行成累计的求和范围:C4:D4、C4:E4、C4:F4;

这种混合引用(既有绝对引用又有相对引用)在表格中是非常有用的,尤其是当你需要公式在填充或复制到不同位置时保持对某些单元格的引用不变时。

效果如下图2所示:

图 2

动态数组法

单元格内容锁定的方法简单直接,缺点是需求填充公式,不能实现一键填充。这里可以用换个思路,用动态数组函数来写

录入公式:

C5=LAMBDA(累计区域,SCAN(0,TOROW(累计区域,3),LAMBDA(X,Y,X+Y)))(C4:H4)

函数释义:

第1层:LAMBDA(累计区域, SCAN(0, TOROW(累计区域,3), LAMBDA(X, Y, X+Y)))

这里定义了一个匿名LAMBDA函数,它接受一个名为“累计区域”的参数。LAMBDA函数是用来创建可复用的自定义函数,在这里是为了实现累加操作。

第2层:TOROW(累计区域,3),这里把累计区域中转成一行,同时用参数3把0去除;

第3层:SCAN(0, TOROW(累计区域,3), LAMBDA(X, Y, X+Y)))(C4:H4)

SCAN是一个迭代函数,用于根据指定的逻辑对一组值进行累加或其他复合运算,其中:

初始值:0,这是累加的起始值。

累计区域:这里的实际值会被传入前面定义的LAMBDA函数中,也就是C4到H4这一行的数值区域。也就是{460,380,580,0,0,0}

LAMBDA(X, Y, X+Y):这是一个Lambda表达式,用于定义每次迭代时的操作逻辑。X代表前一次迭代的结果,Y代表当前遍历到的元素。

在每次迭代中,X和Y相加并将结果作为下一次迭代的X值,从而实现连续累加的效果,运算步骤如下:

第1次:0+460,X=0,Y=460

第2次:460+380=840,X=460,Y=480

第2次:840+580=1420,X=840,Y=480

最后的括号中传入了实际的“累计区域”,即C4到H4这一行的所有单元格的值。

录入公式:

C6=C5#/SUM(C3:H3)

函数释义:

C5#为C5的公式结果:{460,840,1420},除以C3:H3的和,运算结果就是460/3000、840/3000、1420/3000的结果;

这样就得到下图3的效果:

图 3

输入法定义短语

累计需求的使用需求非常多,需要在不同的数据中使用累计求和,为了避免每一次都重新录入公式,我们可以配合输入的自定义短语来快速录入,这样的话相当于自定义了一个新的函数

打开某输入法的设置界面,打开方式:设置→词库管理→自定义短语→添加,在弹出的对话框中:

缩写:lj,这个为英文小写,就是快速录入公式的代号

候选:2,这个就是界面的候选词顺序,不输入1的原因是为避免和正常的打字冲突,正常五笔录入lj,是辊字,放在2就不会冲突了。

自定义短语:

=UNIQUE(LAMBDA(累计区域,SCAN(0,累计区域,LAMBDA(X,Y,X+Y)))())

效果如下图4所示:

图 4

按确定完成后,我们来测试一下,输入快速公式后,需要选择累计区域,也就是自定义短语中预留括号内的引用累计区域范围M3:M8.

完成效果如下图5所示:

图 5

到这里,一个类似自定义函数的功能配合输入法就完成了,只要是有累计需求的计算,只需要录入lj,再配合选择累计需求范围就可以了。

0 阅读:8

职场计划有古哥

简介:感谢大家的关注