列を並べ替えて、5000 または 2 個と 3 個のセルの vba に相当する最適な組み合わせを見つけます

列を並べ替えて、5000 または 2 個と 3 個のセルの vba に相当する最適な組み合わせを見つけます

ターゲットに合わせて列を並べ替える VBA コードを探していましたが、ソルバーが解決策になるかもしれないことは分かっていますが、ネットや Excel で解決策を見つけることができませんでした。例:

ここに画像の説明を入力してください

VBA が実行され、次のように再配置されます。

ここに画像の説明を入力してください

望ましい結果は、各行の合計が 5000 になり、数字は 1 回だけ使用する必要があります。何かアイデアがあれば、アドバイスをお願いします。(加算結果は無視してください。説明のみを目的としています)

答え1

最小二乗法を使用したソルバーによる解法。

ここに画像の説明を入力してください

A2:B7, F1 - source data
C2:C7 - the result (initial values are 1 for all cells)

数式:

B8=SUM(B2:B7)
F2=ROUND(B8/F1,0)
F3=B8/F2
H2=IF(ROW()>$F$2+1,"",ROW()-1) - drag down till H7
I2=SUMIF($C$2:$C$7,H2,$B$2:$B$7) - drag down till I7
J2=IF(I2=0,0,(I2-$F$3)^2) - drag down till J7
J8=SUM(J2:J7)

ソルバーパラメータ:

Optimization: $J$8 => minimal value
Altered cells: $C$2:$C$7
Restrictions: $C$2:$C$7 is integer
              $C$2:$C$7 >= 1
              $C$2:$C$7 <= $F$2

スクリーンショットで見つかった解決策。

関連情報