想詢問用excel vba來寫規劃求解
題目如下:Excel VBA 規劃求解

已知每樣項目的單價,合計是唯一可變動輸入的,已用規劃求解可得一組答案,那用vba該如何寫,紀錄全部的可能組合?
mei881225 wrote:
想詢問用excel vba...(恕刪)


11樓範例
https://www.mobile01.com/topicdetail.php?f=511&t=5025613&p=2





每組個數最大上限=數量合計
金額愈高,上限就要訂愈高

因為這是可重覆選取的問題
當項目太多時,最大搜尋組數,一定要限制上限
不然組合數有可能是天文數字,程式會跑不完

最後用函數(vba),算出各項目的數量
例如
某單價有幾個
=countif(範圍,"=300")

某項目有幾個(如有特定名稱定義,可能需要用別種函數或vba計算)
=LEN(F1)-LEN(SUBSTITUTE(F1,"A",""))

(排版請自行修改範例)
mei881225
您好,想請問重複選取的意思是?總價是我唯一要控制這筆訂單我就能花到這麼多錢,而訂價也是廠商給定不可變動,現在要求購買數量的所有組合,那這樣是否需要以循環算當項目A買1個時項目B、C可買幾個去排列?
mei881225 wrote:
您好,想請問重複選取的意思是?
(恕刪)


不可重複
A+B+C=Ax1+Bx1+Cx1=合計數量3
Ax1 b、c不要=合計數量1
Bx1 a、c不要=合計數量1
Cx1 a、b不要=合計數量1

可重複
A+A+B+C+C+C=Ax2+Bx1+Cx3=合計數量6
Ax6 c、b不要 =合計數量6
Cx3+Bx3 a 不要=合計數量6
………等N種組合

計算公式,請參考該樓文章內的說明


mei881225 wrote:
現在要求購買數量的所有組合,那這樣是否需要以循環算當項目A買1個時項目B、C可買幾個去排列?
(恕刪)


範例中所有的組合結果都會列出來,只是在那一列不一定

如果用2樓圖片中的數值輸入
用項目名稱F欄(或金額G~???欄),計算出各項目的數量後,再排序

可得 A 只買1個時,只有23種組合方式



另外建議加上誤差值
不然只要金額沒有剛好用完或超過時,程式會無法計算出結果

至於方法,請參考該樓文章內的說明
[加總 <(小於) 目標值] 且 [加總 >(大於) 目標值 - 誤差值 ]
mei881225
您好,請問那個項目的數量除了用=LEN(F1)-LEN(SUBSTITUTE(F1,"A",""))計算外還有什麼方式嗎?謝謝!!!
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!