- ベストアンサー
一番近い組み合わせを見つけるには
こんにちは、 エクセルのA列に金額が入っています。安いものは380円から高いものは3200円程度まで、240ぐらいあります。それらを組み合わせて、できるだけ30000円に近い組み合わせを3つ作りたいのですが(あまった分を雑費で処理するので、できるだけ少なくしたいのです)、どうすればいいでしょうか?総額は10万円ぐらいです。 マクロでも関数でもかまいません。解法のヒントだけでも教えていただければ助かります。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 結論からすると、その質問のままでは、たぶん、Excel上では、無理だと思います。人間の頭の中で試行錯誤したほうが良いかと思います。 通常、「ソルバー」で行う問題なのですが、240 個の中から、その数を問わずに、その組合せで、「30,000円」を作るというのは、「ソルバー」では、「数が多すぎる」としてはねつけられてしまいます。 240個の中から、3個選び出す組合せは、220万通り、4個で1億3千万通り、5個で63億通りの中から選び出さなくてはなりません。 マクロならというのですが、少なくとも私は、そのアルゴリズムは分かっているつもりでも、そのような大量の検索をしたこともありませんし、また、そのようなコードをここで、個人のために提供するということは出来ないのです。 金額だけで、たとえば、240個が、10~20程度に減らせるなら、また、考える余地はあると思います。
その他の回答 (2)
- ASIMOV
- ベストアンサー率41% (982/2351)
昔から、「詰め込み問題」と言われて、コンピューターアルゴリズムの研究対象として良く取り上げられているものですね で、同じものを複数買うというのは「有り」ですか? 例えば、380円×5個 とか
お礼
回答ありがとうございました。「詰め込み問題」という古典的なものだとは知りませんでした。値段は全部、少しずつ違うので、組み合わせは膨大になります。今回は試行錯誤しながら考えて、解決しました。
ゴールシーク
お礼
回答ありがとうございました。ご指摘のように結果的には、いろいろな組み合わせと考えながら解決しました。