先进先出法是进销存管理中很重要的成本计算方法。
如下图所示在销售表中根据出库数量计算成本金额。
先跟过儿一起了解先进先出的计算原理。
先进先出:就是在计算成本价格的时候优先计算先入库的产品成本,假设先入库的产品先出库。
【例】如下图所示,A产品总共入库了3个批次,每次进货的价格都不同。
情形一,A产品第一次销售20个,因为A的第1批进了50个,在先进先出法下就可以假设20个产品都是从该批次进货的,所以全部按该批次的价格算成本,成本应为:
=20*2=40
情形二,A产品第一次销售51个,那么第一批进的不够用,所以要从第二批拿出一个算成本。成本总额为:
50*2+1*4=104
情形三:A产品第一次销售70个,前两批进货的数量都不够用,所以得从第三批中拿出10个算成本。
=50*2+10*4+10*9=230
情形4:A产品后续又销售了5个,因为前面已把前2批货卖完了,所以现在直接从第3批(价格为9)的批次中拿货并计算成本。
=5*9=45
以后再销售的成本以此类推。
如果没有从事过财务,那么可能觉得有点费解。这个公式不但要考虑入库表的所有批次价格,而且还要考虑销售表已卖的数量。如此复杂的计算,几乎不可能用excel函数来做到,但是人工又很麻烦,即使一百行的小表人工也得半天。
为了解决这个,用VBA编写了一个自定义函数。完美解决了先进先出算成本的难题。下面带大家演示
=成本(H2,H$1:H2,I$1:I2,J$1:J1,B$2:B$18,C$2:C$18,D$2:D$18)
语法:
成本(商品名称,商品区域,销量区域,已计算成本区域,入库表商品名称,入库表数量区域,入库表单价区域)
参数说明:
下面按照步骤提示在自己的表格中设置先进先出的公式
第1步 复制下面代码
Function 成本(商品, 已销商品rg As Range, 已销售数量rg As Range, 已成本rg, 商品rg As Range, 入库数量rg As Range, 单价rg As Range)Dim 入总, 总数量, 总成本, 销售数量 As Integer, 已计算销售成本arr1 = 商品rgarr2 = 入库数量rgarr3 = 单价rgarr4 = 已销商品rgarr5 = 已销售数量rgarr6 = 已成本rgFor M = 1 To UBound(arr4) If arr4(M, 1) = 商品 Then 销售数量 = 销售数量 + arr5(M, 1) If M < UBound(arr4) Then 已计算销售成本 = 已计算销售成本 + arr6(M, 1) End IfNext MFor x = 1 To UBound(arr1) If 商品 = arr1(x, 1) Then '入总 = 入总 + arr2(x, 1) If 总数量 < 销售数量 Then If 总数量 + arr2(x, 1) < 销售数量 Then 总成本 = 总成本 + arr2(x, 1) * arr3(x, 1) Else 总成本 = 总成本 + (销售数量 - 总数量) * arr3(x, 1) End If End If 总数量 = 总数量 + arr2(x, 1) End If Next x If 总数量 < 销售数量 Then 成本 = "销量大于库存数量,请核查" Else 成本 = 总成本 - 已计算销售成本 End IfEnd Function
第2步 打开你的Excel表格,然后通过开发工具-Visual basic打开VBA编辑器,在左边右键-插入 -模块,然后把代码粘到右侧的空白区域里。最后把文件另存为:xlsm启用宏的excel工作簿类型。
以后,在这个excel文件里就可以直接使用“成本”函数来计算先进先出成本了。
总结:解决先进先出是excel中很难的一个设置,以前有同学问我excel中有没有先进先出的公式,我都会说没有,今天用VBA自定义设置了一个。
本文地址:http://www.cj8845.cn/106885.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。