最近我做了一个大型汽车零部件企业的IT项目,在这个项目中,有项任务就是需要将两个不同系统的库存数据做核对,确保两个系统的库存数据一致。
当然,你可以使用SQL进行后台比较,但是,由于原有的A系统非常复杂,而你一时半会还搞不清楚A系统的数据库结构,这种高难度动作我们还是算了吧。
鉴于一般的信息系统,都支持Excel导出,于是,该Excel闪亮登场了,它就是如此好用又如此低调!
那么,要完成这项任务,我们应该怎么做呢?拢共分为以下三步:
一、分析业务需求
要核对存量,首先要搞清楚两个系统按什么在管理存量,即按什么来区分不同的存量行,也即库存管理维度是什么。
在A系统中,部分物料按批次进行管理,部分物料没按批次做管理,但所有物料都按库位来管理的;
但在B系统中,所有的物料都是按库位+批次进行管理的,也就是说B系统中,库存管理的颗粒度更细。
那么,我们怎么核对存量呢?我们应该按最细的维度进行存量核对,即:按物料编码+库位+批次,检查两个系统的数量是否一致。
但两个系统库存管理维度不同的数据该如何核对呢?对于A系统中批次为空的物料,应该将B系统中相应的不同批次的存量进行累加,再与A系统的数量进行比对。
OK!分析清楚业务需求后,我们就可以着手进行数据清洗与核对了。
二、清洗数据并核对
1、数据拆分
A系统中,“物料编码”、“产品名称”分列存放,B系统中,这两个字段合并了。
我们要基于物料编码进行核对,因此,需要把B系统中的“产品”列进行拆分。
这里我们可以使用最简单的CTRL+E快速填充的方法:
同样的方法,我们把B系统中合并起来的“位置”中,最后一个“/”后面的“库位”给拆分出来。
当然,在Excel进行数据拆分的方法有很多,“分列”法、“公式”法,条条大路通罗马的。
2、处理库存管理维度不同的数据
从上图数据中可以看出,A系统中为空的批次,在B系统中为:“erpnull”+“账套编码”+“序列号”。
我们需要保留非“erpnull”开头的批次,并将以“erpnull”开头的批次数量,按物料编码+库位进行累加。
在Excel中,我们可以这样做:
先使用“替换”功能,将以“erpnull”开头的批次替换为空;
注意:这里我使用了“*”通配符,表示将以“erpnull”开头的任意字符都替换为空。
再使用“数据透视表”,按物料编码+库位+批次,统计合计数量。
3、库存数量核对
分别在A、B两个系统中,使用“&”连接符,将物料编码、库位、批次进行组合,形成两个系统核对的唯一标识码。
对于透视表中的“(空白)”批次,我们使用IF函数处理成空,以便与A系统中的空批次保持一致,形成可对比性。
基于唯一标识码,进行两个系统相同标识码的数量比对,得到库存数量核对结果。
这里,我们使用INDEX+MATCH的超级组合,再结合IF判断,分分钟就得到了核对结果,1代表一致,0代表不一致,简直不要太快!
三、分析核对结果并给出结论
至于后面我们怎么做的分析,以及我们最终得出了什么结论,并给出了什么方案,嘘!保密!
以需求分析为始,以处理方案为终,结合Excel知识和技能,解决实际工作中的问题,为企业创造应用价值!
本文版权归Excellive所有,更多Excel好文和本文示例下载,请关注Excellive!喜欢的话就请点赞、收藏、分享吧!如果您有问题或建议,欢迎留言与大家一起分享!