在進銷存管理中,最難、最復(fù)雜的一個工作就是根據(jù)銷售數(shù)量,用先進先出法計算銷售成本。
如下圖所示在銷售表中根據(jù)出庫數(shù)量計算成本金額。
先跟一起了解先進先出的計算原理。
先進先出:就是先入庫的產(chǎn)品先出庫,計算成本價時優(yōu)先。
【例】如下圖所示,A產(chǎn)品先后入庫3個批次,每次的價格都不同。
情形一,A產(chǎn)品第一次銷售20個,因為A的第1批進了50個,所以可以全部按該批次的價格算成本,成本應(yīng)為:
=20*2=40
情形二,A產(chǎn)品第一次銷售51個,那么第一批進的不夠用,所以要從第二批拿出一個算成本。成本總額為:
50*2+1*5=104
情形三:A產(chǎn)品第一次銷售70個,前兩批都不夠用,所以得從第三批中拿出10個算成本。
=50*2+10*4+10*9=230
情形4:A產(chǎn)品后續(xù)又銷售了5個,因為前面已把前2批貨賣完了,所以直接從第3批(價格為9)中拿貨并計算成本。
=5*9=45
以后再銷售以此類推。
如果你沒從事過會計,估計看的有點暈了。這個公式不但要考慮入庫表的所有批次價格,而且還要考慮銷售表已賣的數(shù)量。所以你可以想象用Excel公式來設(shè)置有多么的難。如果都用手工,一個幾百行的小表也會花費你一天的時間。
為了解決這個,用VBA編寫了一個自定義函數(shù)。完美解決了先進先出算成本的難題。
=成本(H2,H$1:H2,I$1:I2,J$1:J1,B$2:B$18,C$2:C$18,D$2:D$18)
語法:
成本(商品名稱,商品區(qū)域,銷量區(qū)域,已計算成本區(qū)域,入庫表商品名稱,入庫表數(shù)量區(qū)域,入庫表單價區(qū)域)
參數(shù)說明:
- 商品區(qū)域:銷售表中截止本行之前的商品列2行區(qū)域,鎖定開始行,如H$1:H2
- 銷量區(qū)域:銷售表中截止本行之前的銷量2行區(qū)域
- 已計算成本區(qū)域:輸入公式位置的上一個單元格,要用區(qū)域的形式錄入,如:J$1:J1,
- 入庫表商品名稱:入庫表中商品名稱或商品編號區(qū)域(商品的唯一標(biāo)識)
- 入庫表入庫數(shù)量區(qū)域:入庫表中商品入庫數(shù)量所在列區(qū)域
- 入庫表單價區(qū)域:入庫表中商品單價所在列區(qū)域(商品的唯一標(biāo)識)
如果你也想在自已的excel中使用這個函數(shù),就跟蘭色一起操作吧。Function 成本(商品, 已銷商品rg As Range, 已銷售數(shù)量rg As Range, 已成本rg, 商品rg As Range, 入庫數(shù)量rg As Range, 單價rg As Range)
Dim 入總, 總數(shù)量, 總成本, 銷售數(shù)量 As Integer, 已計算銷售成本
arr1 = 商品rg
arr2 = 入庫數(shù)量rg
arr3 = 單價rg
arr4 = 已銷商品rg
arr5 = 已銷售數(shù)量rg
arr6 = 已成本rg
For M = 1 To UBound(arr4)
If arr4(M, 1) = 商品 Then
銷售數(shù)量 = 銷售數(shù)量 + arr5(M, 1)
If M < UBound(arr4) Then 已計算銷售成本 = 已計算銷售成本 + arr6(M, 1)
End If
Next M
For x = 1 To UBound(arr1)
If 商品 = arr1(x, 1) Then
'入總 = 入總 + arr2(x, 1)
If 總數(shù)量 < 銷售數(shù)量 Then
If 總數(shù)量 + arr2(x, 1) < 銷售數(shù)量 Then
總成本 = 總成本 + arr2(x, 1) * arr3(x, 1)
Else
總成本 = 總成本 + (銷售數(shù)量 - 總數(shù)量) * arr3(x, 1)
End If
End If
總數(shù)量 = 總數(shù)量 + arr2(x, 1)
End If
Next x
If 總數(shù)量 < 銷售數(shù)量 Then
成本 = "銷量大于庫存數(shù)量,請核查"
Else
成本 = 總成本 - 已計算銷售成本
End If
End Function
第2步 打開你的Excel表格,然后通過開發(fā)工具-Visual basic打開編輯器,再插入 -模塊,然后把代碼粘到右側(cè)的窗口里。最后把文件另存為:啟用宏的excel工作簿類型。
以后,在這個excel文件里就可以直接使用“成本”函數(shù)了。
解決先進先出公式是蘭色很多年的愿望,但一直手懶沒去編寫。這次要做進銷存管理系統(tǒng)繞不過去了,嘿嘿,只能耐下心搞定它了。