【Microsoft Excel】エクセルで作成した価格表を利用して、10万円ぴったりの買い物をする場合の組み合わせを全て考えたいのです。価格表には1,000商品程掲載されております。エクセルの関数等の利用法や、このような問題に使えそうなソフトを教えてください。連休中にどうしても解決したいので、よい答えにはたっぷりポイント差し上げます。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/05/20 10:51:38
  • 終了:--

回答(8件)

id:kimoto-antena No.1

kimoto-antena回答回数25ベストアンサー獲得回数02005/04/29 11:10:00

ポイント3pt

EXCELにはゴールシークの機能がありますが、それを利用されてはいかがでしょうか。

id:koyaman2 No.2

koyaman2回答回数78ベストアンサー獲得回数02005/04/29 13:35:42

ポイント1pt

http://www.hatena.ne.jp/1114739498#

人力検索はてな - 【Microsoft Excel】エクセルで作成した価格表を利用して、10万円ぴったりの買い物をする場合の組み合わせを全て考えたいのです。価格表には1,000商品程掲載されております..

Excelで全ての商品の組み合わせ2^1000≒1.07×10^301を計算するのは無理です。

「計算時間の爆発」が起きます。ニューロ・コンピュータなど「学習能力をもつコンピュータを使うしかありません」

id:gatten2002

では全てではなくとも、いくつかでもかんがえられないですかね・・・・・。

2005/04/29 13:57:23
id:koyaman2 No.3

koyaman2回答回数78ベストアンサー獲得回数02005/04/29 17:31:48

ポイント3pt

10商品くらいなら、2^10-1=1023通り位なら

ワークシートで処理できますよ。

ご希望なら以後いわしで。

id:suilen No.4

suilen回答回数7ベストアンサー獲得回数02005/05/01 10:06:34

ポイント3pt

エクセルには『ソルバー』という機能があります。『ゴールシーク』の複雑版といった感じでしょうか?

通常のエクセルにはこの機能はメニューを探してものっていません。アドイン機能の登録作業をして初めて使用できます。

上記2番目のURLを参考にアドイン登録をされて使用してみてください。

id:t-ueno No.5

t-ueno回答回数113ベストアンサー獲得回数32005/05/06 11:45:36

ポイント30pt

単純に全ての組合せで調べようとすると、1000種類の商品は多すぎて計算できませんね。何らかの戦略が必要になります。

1000商品の価格帯を教えていただければ新たな展開が得られるかと思います。

例えば、1000商品のうちのかなりのものがが5万円を超えているのであれば、組合せの数を激減させることが可能(5万円を越えるもの同士の組合せを最初から排除)、等。

id:Insite No.6

Insite回答回数111ベストアンサー獲得回数02005/05/06 17:35:06

ポイント30pt

今のコンピュータではどんなアルゴリズムを使ったとしても、答えがたまたますぐに出る場合もあるし一つめの答えが見つからないまま事実上永遠に時が過ぎていく場合もあるということです。印刷して自分で考えるのが敢えて言えば最善だと思います。

id:Baku7770 No.7

Baku7770回答回数2832ベストアンサー獲得回数1812005/05/13 12:56:55

ポイント40pt

 全ての組合せを求めるならダイナミックプログラミングで解くことができます。これだと、連休中には無理だと思いますので簡単な方法です。


 単純に2個で10万になる組合せを求めるなら、Vlookup関数を用いることで単価が

10万円から自身の単価を引いた単価の商品が

あるかを検索すれば可能です。3個でならマクロを組んであげて2000×2000の組み合わせに対して同様の事をすれば可能ですね。

id:qa2 No.8

qa2回答回数84ベストアンサー獲得回数12005/05/20 14:06:28

ポイント40pt

商品が1000点程度あるということですが、価格でソートして同じ価格のものはまとめてしまうことができませんか?

それだけでも組み合わせの数は激減すると思います。


また、それぞれの価格によっては組み合わせが限られます。

5番目の回答者の方の考え方と同じですが、10万円を超える組み合わせを排除するとか…


例えば、最高の値段のものから選択していって、次は残額の中での最高額のもの、さらに残額から…というのを1番目の組み合わせとして、

次は上記の組み合わせの一部を別のものに置き換えて見つけていけば、

という方法で考える組み合わせは減らせそうです。

(例)

6万、5万、4万、3万、2万、1万の商品が1点ずつあるとすると

1番目の組み合わせを考えるときは

6万円を選び、残り4万なので4万円を選ぶ

2番目は

6万円を選び、残りの4万を別の選び方をして3万と1万を選ぶ

3番目は、

最初に6万の組み合わせはないので5万を選び、残りの5万を4万と1万を選ぶ

と続けると

組み合わせは

{6,4}{6,3,1}{5,4,1}{5,3,2}{4,3,2,1}

となります。2^6-1=63通りも考えなくていいはずです。

こういう方法を応用できないでしょうか?

  • id:gatten2002
    gatten2002 2005/05/21 08:03:44
    質問者です

    皆さんご協力ありがとうございました。
    たまたま6つの商品での組み合わせが見つかり、解決することができました。
    簡単に考える方法がないかと思ったんですが、結局は考えられる組み合わせを減らした後、エクセルの検索機能を使いました。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません