COCO研究院

 找回密碼
 註冊
搜索
查看: 5647|回復: 7

[EXCEL] Excel VBA 寫出計算產品剩餘數量與均價

[複製鏈接]
發表於 12-5-1 00:36 | 顯示全部樓層 |閱讀模式
本帖最後由 white5168 於 12-5-1 00:41 編輯

請問有人能用Excel VBA 寫出一個計算,類似先進先出的方法,來統計目前有產品剩餘數量與均價?
如圖分別為資料與最後畫面
最後畫面的部份對於日期是可調整的,如日期變動,則最後資料所呈現的畫面也會改變


finalscreen.JPG

呈現畫面

呈現畫面

test.rar

2.85 KB, 下載次數: 626

發表於 12-5-1 08:20 | 顯示全部樓層
到麻辣家族尋解吧!
http://forum.twbts.com/index.php
 樓主| 發表於 12-5-1 08:52 | 顯示全部樓層
已經在麻辣家族po文了,很久都沒有人可以成功寫出來
希望這裡的高手能有辦法
發表於 12-5-1 14:04 | 顯示全部樓層
怎麼定義先進先出@@每日結算還是...
這個很難嗎?
 樓主| 發表於 12-5-1 15:08 | 顯示全部樓層
原始資料
                    商品     價格   買進   賣出
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
發表於 12-5-2 12:32 | 顯示全部樓層
white5168 發表於 12-5-1 15:08
原始資料
                    商品     價格   買進   賣出
20120401      A    2000   500         0

落落長...看的眼花撩亂...
建議你先把演算法釐清,用流程圖表示,這樣比較容易理解吧...
落落長,看都懶的看ㄟ....
發表於 12-6-20 07:57 | 顯示全部樓層
本帖最後由 ribbit 於 12-6-20 08:01 編輯

我對VBA的語法一直搞不懂後面的複製代碼是啥,有人能指導一下嗎?謝謝

關於重複記錄取得數據進表內一直弄不懂
所以只能手動敲單超級累,
以時間為軸重複不斷紀錄歷史交易資訊
再透過歷史資料做複雜分析與比對
若能模組化去作重複工作,這樣就可省去許多時間與精力

發表於 12-6-20 08:26 | 顯示全部樓層
本帖最後由 ribbit 於 12-6-20 08:29 編輯
white5168 發表於 12-5-1 15:08
原始資料
                    商品     價格   買進   賣出
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.程式  FOR  a=1    NEXT a=a+1  、 GOTO  9

以上方法都有人做結果相同但效率卻差粉多

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-23 12:46

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |