仓智能制造时代,动态数组重构零差错进销存系统-2 ‌

古哥计划

优秀创作者

在昨天的第1章中,完成了产品信息.输入和入库表的.输入的设计,把传统的IF函数加查找引用VLOOKUP函数分别更换成IF动态数组版本加XLOOKUP高级查找引用函数。

今天的第2章中,快速的把出库表,与库存表设计完成。

出库表.输入

出库表的输入与入库表的输入格式设计成为一模一样即可,标题与公式都一样,只需要快速复制入库表.输入,新建一张工作表即可。

同时更正一下昨天的日期的函数,不能使用TODAY函数,使用TODAY函数需要每天粘贴成数值,所以这里更改这个字段为人工录入。

同时出库金额这里录入函数=H2#*OFFSET(H2#,,1),进行计算。这里的一个小技巧就是,当一份表中有一列为动态数组公式后,可以用OFFSET来偏移这一列,从而达到非动态数组列也有动态数组列的效果。

库存表.输出

库存表这一块,原表公式的的原理非常简单,就是如果产品信息A3等于空,就显示为空,否则就显示产品信息表中A3单元格信息。这个公式是个填充公式,需要下拉填充实现。并且以产品信息表的代码作为基准来统计库存结存量。当产品信息非常多的情况下,0库存的代码就会显示非常多。

这里升级为动态数组公式:

=UNIQUE(VSTACK(OFFSET(入库表.输入!C2#,,-1),OFFSET(出库表.输入!C2#,,-1)))

函数解释:

通过C2# 这个动态数组进行向左偏移一列,达到入库与出库输入动态数组化,然后用合并函数进行两个区域合并,最后用删除重复项函数进行重复项删除,得到有入库和出库的编码。相对于原表来说,这个数据只涉及到有出入库的代码,而不是所有产品信息中的代码

库存量计算

产品库存量的计算公式为期初库存加上入库数量减去出库数量,原来的公式为:=IF(B3="","",SUMIF(入库表!$C$3:$C$2000,库存统计!B3,入库表!$G$3:$G$2000))和=IF(B3="","",G3+F3-H3),这里的公式分别用的是SUMIF和IF判断。

新的动态数组公式不存在空的情况,所以不需要IF了,并且SUMIF的运算效率比较慢,这里更新为聚合汇总加查找引用的的公式。

入库数量:=VLOOKUP(A2#,GROUPBY(入库表.输入!B2:B300000,入库表.输入!I2:I300000,SUM),2,0)

出库数量:=IFNA(VLOOKUP(A2#,GROUPBY(出库表.输入!B2:B300000,出库表.输入!I2:I300000,SUM),2,0),0)

库存数量:=I2#+OFFSET(I2#,,-1)-J2#

效果如下图所示:

江苏省
浏览 75
收藏
3
分享
3 +1
2
+1
全部评论 2
 
不错
· 山东省
回复
 
学习
· 广东省
回复