[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の合計で任意の数字に一番近い組み合わせを導き出す』(イチゴ)
イチゴです。
また、お世話になります。
B2〜B11に任意の数字
34,532
41,211
10,102
18,386
21,205
22,673
40,106
1,560
17,865
12,807
が有ります。
合計が、99,999円に一番近い組み合わせを導きたいのです。
VBAは全く分かりません。
エクセルの機能で解決できませんでしょうか?
どうぞ、よろしくお願いいたします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
(マナ) 2020/11/08(日) 23:36
(γ) 2020/11/09(月) 00:28
E2に=SUMPRODUCT(B2:B11,C2:C11)
C2からC11まで1を入力
D2にB2*C2入力しD11までB11*C11
ソルバーを立ち上げ
目的セルの設定で$E$2
目標値は最大値
変数セルの変更は$C$2:$C$11
追加をクリック
制約条件のセル参照で$C$2:$C$11
次に<=
制約条件(N)で100000と入力でOK
ソルバーのパラメーターで解決クリック
ソルバーの結果(OK)をクリック
上手くいきません。
制約条件の追加
セル参照 $C$2:$C$11
BIN
バイナリ
追加
解決クリック
何も変わらずでした。
ご教示下さい。
(イチゴ) 2020/11/09(月) 05:08
制約条件は
$C$2:$C$11をバイナリ
でどうですか?
(ちなみに、バイナリとは0か1かという意味です、この場合)
(γ) 2020/11/09(月) 06:10
これ私も詳しくないので試したのですが、 解決の方法でエボリューショナリーを選択しないと、バイナリでできない感じですか?
こっちで実験した結果です。 |[A]|[B] |[C]|[D]|[E] |[F] [1] | | | | | | [2] | |34532| 1| |99976| 23 [3] | |41211| 1| | | [4] | |10102| 0| | | [5] | |18386| 0| | | [6] | |21205| 0| | | [7] | |22673| 1| | | [8] | |40106| 0| | | [9] | | 1560| 1| | | [10]| |17865| 0| | | [11]| |12807| 0| | | (稲葉) 2020/11/09(月) 14:52
ただし、目的関数が非線形なので、
シンプレックス法は使用できないですね。
# この場合は、2^10=1024とおりしかないので、
# なんでこんなに時間が掛かるのか、という素朴な疑問はあるわけですが、
# それぞれお家の事情ということもあるんでしょうね。
(γ) 2020/11/09(月) 15:26
すみません、こっちの勘違いでした。 さっきはいつまでの解が出なかったので、何かしら重いファイルでも開いていたかもしれません。 (稲葉) 2020/11/09(月) 15:34
私も無論動作を確認した上で発言していますが、
たしかに発言を見る限り、やってみなはれ、
としか見えないでしょうね。
# 1024とおり計算し検算までしまっていたわけですが、
# そういう舞台裏を逐一書いたら暑苦しいかと。
(γ) 2020/11/09(月) 16:18
こんばんは! 私も詳しくないのでちょっとやってみました。
制約条件の対象を =$C$2:$C$11<=1 =$C$2:$C$11>=0 =$C$2:$C$11=整数 とするのがミソなのですね?
勉強になります。 (SoulMan) 2020/11/09(月) 19:45
C列に数字の1が入っています。
E2に=SUMPRODUCT(B2:B11,C2:C11)
F2 =ABS(99999-E2)
ソルバーを立ち上げます。
目的セルの設定は $E$2
目標値は 最大値
変数セルの変更 $C$2:$C$11
追加をクリック
制約条件の追加
セル参照 $C$2:$C$11
真ん中のセル bin
制約条件 バイナリ
追加クリック
キャンセルクリック
制約条件の対象表示が
「$C$2:$C$11 = バイナリ」
制約のない変数を非負数にするにチェック
解決方法の選択 「GRG非線形」
解決を選択
何も変わらず。
1.セル参照の枠
2.次の枠
3.制約条件の枠
が間違っているのでしょうか?
制約条件の対象枠の表示で、真ん中の枠が「bin」と表示したのですが、
制約条件の対象表示が
「$C$2:$C$11 = バイナリ」と表示しています。
制約条件に<= 100000 を入力し、解決をクリックすると
それなりの表示になります。
お忙しい中とは存じますが、ご教示いただければと存じます。
いちご
(イチゴ) 2020/11/09(月) 19:58
C列には、1 か 0が入って欲しいので 制約条件を追加していき 1以下 0以上 かつ整数 と三つの条件を加える必要があるのではないでしょうか??? 今日やったばかりなので詳しいことはわかりませんが、、 それなりの答えは出ております。。。 (SoulMan) 2020/11/09(月) 20:09
(マナ) 2020/11/09(月) 20:26
なぜ、最大値?
(マナ) 2020/11/09(月) 20:31
なるほど、、 =$C$2:$C$11binバイナリ で =$C$2:$C$11=バイナリ となるのですね???
勉強になりますねぇ。。。 ありがとうございます。。。 (SoulMan) 2020/11/09(月) 20:37
因みに目標のセルは、F2ですよね? (SoulMan) 2020/11/09(月) 20:43
この度は有り難うございました。
無事、解決できました。
感謝致します。
いちご
(イチゴ) 2020/11/09(月) 21:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.