Excel VBA 寫出計算產品剩餘數量與均價
本帖最後由 white5168 於 12-5-1 00:41 編輯請問有人能用Excel VBA 寫出一個計算,類似先進先出的方法,來統計目前有產品剩餘數量與均價?
如圖分別為資料與最後畫面
最後畫面的部份對於日期是可調整的,如日期變動,則最後資料所呈現的畫面也會改變
到麻辣家族尋解吧!
http://forum.twbts.com/index.php 已經在麻辣家族po文了,很久都沒有人可以成功寫出來
希望這裡的高手能有辦法
怎麼定義先進先出@@每日結算還是...
這個很難嗎? 原始資料
商品 價格 買進 賣出
20120401 A 2000 500 0
20120402 B 1500 0 100
20120403 A 2020 400 0
20120404 A 2050 400 200
20120405 A 2010 0 200
類似先買進先賣出的觀念
20120404結算時,20120401的A產品平均買進成本仍為2000,數量剩為500-200=300,表示20120401當天交易數量還有剩300
商品 價格 買進 賣出
20120401 A 2000 300 0
20120402 B 1500 0 100
20120403 A 2020 400 0
20120404 A 2050 400 0
20120405 A 2010 0 200
而計算到20120404交易後,A產品全部的均價為(2000*300 + 2020*400 + 2050*400)/(300+400+400)=2025.5,數量剩為300+400+400=1100
20120404結算時,盈虧為(2050-2000)*200=10000
20120405結算時,20120401的A產品平均買進成本仍為2000,數量剩為300-200=100,表示20120401當天交易數量還有剩100
商品 價格 買進 賣出
20120401 A 2000 100 0
20120402 B 1500 0 100
20120403 A 2020 400 0
20120404 A 2050 400 0
20120405 A 2010 0 0
而計算到20120405交易後,A產品全部的均價為(2000*100+ 2020*400 + 2050*400)/(100+400+400)=2031.1,數量剩為100+400+400=900
20120405結算時,盈虧為(2010-2000)*200=2000
第二筆出貨大於第一筆庫存的說明如下
如果再多ㄧ個20120406的交易如下
商品 價格 買進 賣出
20120401 A 2000 100 0
20120402 B 1500 0 100
20120403 A 2020 400 0
20120404 A 2050 400 0
20120405 A 2010 0 0
20120406 A 2040 0 300
20120406結算時,20120401的A產品平均買進成本仍為2000,當20120406交易後,由於20120401只剩下100不夠20120406賣出的數量200,需以20120403的數量來補足,所以20120403剩餘400-200=200,而20120403的A產品平均買進成本為2020
商品 價格 買進 賣出
20120401 A 2000 0 0
20120402 B 1500 0 100
20120403 A 2020 200 0
20120404 A 2050 400 0
20120405 A 2010 0 0
20120406 A 2040 0 0
而計算到20120406交易後,A產品全部的均價為(2020*200 + 2050*400)/(200+400)=2040,數量剩為200+400=600(這是我需要的)
20120406結算時,盈虧為(2040-2000)*100+(2040-2020)*200=8000 white5168 發表於 12-5-1 15:08 static/image/common/back.gif
原始資料
商品 價格 買進 賣出
20120401 A 2000 500 0
落落長...看的眼花撩亂...
建議你先把演算法釐清,用流程圖表示,這樣比較容易理解吧...
落落長,看都懶的看ㄟ....
本帖最後由 ribbit 於 12-6-20 08:01 編輯
我對VBA的語法一直搞不懂後面的複製代碼是啥,有人能指導一下嗎?謝謝{:4_160:}
關於重複記錄取得數據進表內一直弄不懂
所以只能手動敲單超級累,
以時間為軸重複不斷紀錄歷史交易資訊
再透過歷史資料做複雜分析與比對
若能模組化去作重複工作,這樣就可省去許多時間與精力{:4_186:}
本帖最後由 ribbit 於 12-6-20 08:29 編輯
white5168 發表於 12-5-1 15:08 http://www.coco-in.net/static/image/common/back.gif
原始資料
商品 價格 買進 賣出
20120401 A 2000 500 0
就像加減乘除從一加到十的作法就以下幾種:
1. 從1+2+3+4+5+6+7+8+9+10=55 乖乖的逐一加上去
2. 10-1=9、2+3=5 、(9*5)+10=55模組拆解法
3.程式FORa=1 NEXT a=a+1、 GOTO9
以上方法都有人做結果相同但效率卻差粉多{:4_93:}
頁:
[1]