430仓库管理智慧升级:动态数组与高级公式引领高效新时代

职场计划有古哥 2024-06-23 18:32:15

全文约2500字;

阅读时间:约7分钟;

听完时间:约14分钟;

在完成库存数据的计算引用后,表2“2.明细”清晰地展示了每种物料截至最近入库日期的结存数量。特别地,表格的“序号和结存”部分应用了动态数组公式,该公式会根据C列日期数据的变化自动调整。这意味着每当C列新增入库资材信息时,相关公式会即时更新以反映最新情况。

然而,随着入库资材代码记录的增多(包括同种资材的重复入库),查找特定资材的库存信息变得相对不便。若要准确查询某个资材的当前库存,用户需手动定位至该资材的最晚入库日期记录。

鉴于上述种种不便,我们有必要对“数据展示”界面进行重新设计,以便更好地呈现资材快速查询功能、实时库存余额及每日库存总结等关键信息。随后,古老师计划依托现有公式所生成的数据,逐一开展设计与实施工作,以优化展示效果。

现存量查询

创建一个新的页面,并将其命名为“5. 现存量查询”。在页面的恰当位置设置标题行,列标题分别为:“代码”和“结存数量”。接着,在相应的单元格中输入以下函数:

B3:

=UNIQUE('4.计算'!D3#)

函数说明:

此函数用于从“4. 计算”页面的D列提取并去除重复的代码项,实现数据的唯一化显示。

C3:

=XLOOKUP(B3#,'4.计算'!D3#,'4.计算'!J3#,,,-1)

函数说明:

利用XLOOKUP函数,在“4. 计算”页面中根据B列的代码查找对应的库存结余。通过设定最后一个参数为-1,确保从列表底部开始查找,因为数据按日期降序排列,这样查找到的就是每个代码项的最新现存量。生成的表格效果请参考下图所示。

日库存监控

在仓库管理中,日终库存的动态监控是一项核心任务,它涉及到每天最后一笔入库或出库交易完成后,即时把握仓库的整体库存量。通过对各个不同日期的库存水平进行跟踪,我们能有效洞察库存的变化趋势——不论是增减态势,还是个别物料代码的库存走向。这不仅有助于及时调整库存策略,还能提升对市场响应的灵敏度及资源分配的合理性。

创建一个新的工作表并命名为“6. 日库存监控”,旨在构建一个二维数据视图。具体配置如下:

垂直方向(代码): 在B3单元格中输入公式:

=UNIQUE('4.计算'!D3#)

函数说明: 同前文所述,用于提取“4.计算”表中的唯一物料代码。

水平方向(日期): 在C2单元格中键入公式:

=TOROW(UNIQUE('4.计算'!C3#))

函数说明: 从“4.计算”表中筛选出不重复的日期,并将这些日期转置为横向排列。

交叉引用区域(C3开始): 在C3单元格应用公式:

=XLOOKUP(C2#&B3#,'4.计算'!C3#&'4.计算'!D3#,'4.计算'!J3#,0,0,-1)

函数说明: 利用XLOOKUP函数根据当前行的日期(C列)和物料代码(B列)作为联合条件,在“4.计算”表中查找对应库存记录。通过指定-1作为最后一个参数,确保从匹配项的末尾开始查找,从而获取每个日期下各物料的最新库存量。未找到匹配项时返回0。

汇总库存

上已经成功利用XLOOKUP函数获取了每个资材每日的库存数据,但直接在结果下方进行求和操作需谨慎,因为XLOOKUP生成的是动态数组,数据变化时会自动扩展。直接求和可能导致“溢出”错误,表现为#SPILL!错误。

为解决这一问题,我们可以采用BYCOL函数结合VSTACK函数来灵活处理数组求和,步骤如下:

=LET(A,XLOOKUP(C2#&DROP(B3#,-1),'4.计算'!C3#&'4.计算'!D3#,'4.计算'!J3#,0,0,-1),VSTACK(A,BYCOL(A,SUM)))

函数解释:

首先,使用LET函数定义变量A,存储通过XLOOKUP函数获取的每日库存数据。这里通过DROP(B3#,-1)移除了"B3#"中的最后一个元素(假设为“总计”文本),以避免在XLOOKUP中不必要的匹配尝试。

接着,利用BYCOL函数沿列方向对数组A中的每个列进行求和。

最后,通过VSTACK函数将原始数据数组A与求和结果数组堆叠在一起,实现了数据的重组,并自然地在每日库存数据后添加了总计行。

一键汇总

为了提升运算效率,尤其是考虑到最新版WPS引入了强大的聚合函数PBY(PIVOTBY), 我们可以利用它来迅速汇总每日库存信息。请尝试以下优化后的公式:

=DROP(PIVOTBY('4.计算'!D2:D18000,'4.计算'!C2:C18000,'4.计算'!J2:J18000,LAMBDA(X,TAKE(TEXTSPLIT(ARRAYTOTEXT(X),","),,-1)),3,,,0,,'4.计算'!D2:D18000>0),1)

函数解释:

行标签:选取了'4.计算'表中的代码列作为行标签,范围设定为D2至D18000,适应大数据量处理。

列标签:对应'4.计算'表中的日期列,即C2至C18000,确保每日期的库存都能被正确归类。

值标签:目标值来自'4.计算'表的结存列,J2至J18000,我们要汇总的就是这些库存数据。

自定义函数:通过LAMBDA函数定义了一个处理逻辑,它首先将数组转换为文本(ARRAYTOTEXT),接着使用,作为分隔符进行文本分割(TEXTSPLIT),最后利用TAKE仅保留分割结果的最后一部分,即每个日期的最终库存数量。

显示设置:设置3确保显示行标签,同时留空列标签与值标签的显示格式,保持默认。

总计抑制:通过设定0,避免在结果中自动添加列总计。

数据筛选:只包括那些代码列(D列)值大于0的记录,确保汇总的是有效数据。

最后:使用DROP函数移除结果的第一列,这是因为PBY函数默认包含所有行标签,而我们在此场景下可能不需要第一列的额外信息。

此公式极大地提高了处理速度,并且直接提供了按日期分类的每日库存结存汇总。

目录汇总

完成整体设计后,增添一个目录页来实现各表格间的便捷导航显得尤为关键。此目录不仅应当详尽地概述每个表格的功能,清晰标注它们是用于数据输入还是输出,以及各自的用途,以便读者迅速把握整体结构。为增强互动性,建议在每个表格中嵌入返回目录页的超链接。下面的设计示例可作为创建目录页时的布局参考。

最后总结

综上所述,通过对库存管理系统的一系列优化措施,我们显著增强了数据的可访问性和实用性。"5. 现存量查询"和"6. 日库存监控"页面的设立,不仅实现了快速查询特定资材的当前库存,还提供了库存随时间变化的全面概览,为库存管理决策提供了强有力的支持。特别是通过高级函数的应用,如XLOOKUP、BYCOL、VSTACK及PBY的创新组合,我们不仅克服了动态数组直接求和的技术障碍,还极大提升了数据汇总的效率与精确度。

引入一键汇总功能,利用PBY函数完成了复杂数据的瞬时整合,展现了技术升级带来的便利性和高效性。这一系列改进不仅简化了用户的操作流程,也确保了库存信息的时效性和准确性,为仓储运营的精细化管理奠定了坚实基础。

最终,通过增设目录页并优化导航功能,我们确保了整个文档结构的条理性和易用性,每个部分的功能与数据流向一目了然,为使用者提供了直观的操作指南。每个关键页面的超链接设置,进一步促进了信息的快速跳转,提升了工作效率。

总之,本次库存管理系统的设计升级,围绕着提高数据处理速度、增强信息透明度及优化用户体验的核心目标展开,成功构建了一个既灵活又高效的库存管理平台。未来,随着业务需求的持续演进,这套系统还有望通过持续的技术迭代与功能优化,更好地服务于库存管理的智能化、自动化发展需求。

0 阅读:2

职场计划有古哥

简介:感谢大家的关注