元浩开的小卖部经过我的帮助,他现在只需登记物资进出台账,库存自动生成。上次他还提出了一个新需求,怎么知道结存商品的库存金额呢?
要知道结存商品的库存金额,需要先知道出库的金额,这是一个比较复杂的问题,如果干过财务,我们知道商品出库计价有三种方法,先进先出法、个别计价法、移动加权平均法,对于小卖部适合采用先进先出法。
我们先了解一下什么是先进先出法,先进先出法(FIFO)是一种指定库存价值的方法,它将库存中最早采购或生产的物品第一个卖出,而将最新采购或生产的物品最后卖出。 由此,借助于先进先出法,公司可以按照该原则准确估算其存货的成本,从而准确地测算利润。
以元浩店里销售的硬中华香烟为例解释一下先进先出法,如下图是他的出、入库情况,
商品名称
日期
入库数量
入库单价
硬中华香烟
2023/11/1
45
40
硬中华香烟
2023/11/1
20
30
硬中华香烟
2023/11/5
20
45
硬中华香烟
2023/11/11
10
48
硬中华香烟
2023/11/11
21
40
硬中华香烟入库表
硬中华香烟
2023/11/5
25
硬中华香烟
2023/11/5
40
硬中华香烟
2023/11/8
10
硬中华香烟
2023/11/10
20
硬中华香烟
2023/11/11
20
硬中华香烟出库表
2023年11月5日出的首笔25包,是最先入库的45包中25包,对应单价40元,出库成本应当为25*40=1000元,2023年11月5日出的第二笔40包,对应的是最先入库的45包中剩下的20包(单价40元)和2023年11月1日入库第二笔20包(单价30元),出库成本应当为20*40+20*30=1400元。后续以此类推,对电脑数据结构而言,从一端进,从另一端出,就好像排队一样。
先进先出法计价一直是现实成本核算中的一个难题,对于小店来说购买一个库存商品核算软件也不划算,那么如何在EXCEL中实现呢?这里主要介绍3种方法,根据数据结构特点的数据重组法、函数公式法和VBA编程法。我们将逐一介绍这三种方法,今天我们先来学习函数公式法。
首先我把硬中华香烟的出入库明细贴出来:
硬中华香烟入库表
硬中华香烟出库表
如果你是付费版本OFFICE 365,可以采用TAKE和DROP等函数,这里就不介绍了,如果我们用的是其他不付费版本,在R2中输入公式:
IF(SUM($L$2:$L$6)SUM($Q$2:$Q$6)>=0,SUMPRODUCT(FREQUENCY(ROW(INDIRECT("1:"&SUM($Q$2:Q2))),SUBTOTAL(9,OFFSET($L$2,,,ROW($1:$3))))*($M$2:$M$5)),0)
这个公式核心是用了FREQUENCY函数,以一列垂直数组返回某个区域中数据的频率分布。FREQUENCY函数有2个参数,我们这里需要构造第1参数应该是出库数量连续区间,第2参数应该是有递增属性的各批次累计入库离散点。
(1)出库数量连续区间构造ROW(INDIRECT("1:"&SUM($Q$2:Q2)),构造了一个从1到当前出库量(步长为1)的数组。
(2)接下来,我们需要完成各批次累计入库离散点构造 SUBTOTAL(9,OFFSET($L$2,,,ROW($1:$3)))通 过offset函数位移构造二维数组,然后通过SUBTOTAL降维求和,得到累计入库离散点数组,
(3)通过FREQUENCY函数将出库数量映射到对应的入库数量。
(4)利用SUMPRODUCT函数,将相应的入库数量和入库单价乘积后求和。
(5)最后在外面再加一个if判断函数,如果累计出库数量大于累计入库数量,则可取上述函数的结果,如果不准确报错或者返回零。
在R2中输入公式后,下拉即可以得出每批次出库的成本金额。累计入库金额减去累计出库成本金额就是结存商品的库存金额,这里不再演示了。
大家对函数有些细节不理解的地方,欢迎留言讨论,下次我们将介绍VBA编程法和数据结构重组法,欢迎关注。