こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの関数について教えてください。

最近始めたカードゲームのコストシミュレーターのようなものを探していたのですが、検索して探してみたものの、公開されたばかりのゲームなのでそんなものはなく…;
ゲーム自体のインターフェースもまだまだ不親切なので、あったらすごく便利だなと思っています。

そこで、ないならエクセルなどを使って自分で作ってみようと思ったのですが…高校で習っただけの簡単な関数しかわからず、なかなか進みません;

解説サイトなどで調べて、最大値を返す関数や違う場所に抜き出すような関数は見つけたのですが、どうもそれではできなくて…

詳しい方にお力を貸していただければ…と思い質問させていただきます。
説明不足なところがあれば言ってください。どうぞよろしくお願いします><


添付写真のベースから、

●決められた攻撃Pの中で、一番強い攻撃力のデッキを表示させたい
例えば、
最大攻撃P:50
所持カード:A,B,C,D,E,F

50以内で一番攻撃力が高くなる組み合わせを、右の表に抜き出したいというような感じです。

●同じ属性のカードが何枚あるか表示させたい
こちらはCOUNTIFで合っていますか?

ベースをこうした方が関数使いやすいよというようなことがあれば、ご指摘もよろしくお願いします。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2012-10-11 11:29:49

QNo.7743019

困ってます

質問者が選んだベストアンサー

「最適解問題」ですね。

これは、一つの式で簡単に導き出せるようなものではありません。

参考) http://www.is.doshisha.ac.jp/report/2011/1/24/20110010014/index.html

確かに、高校までの数学では習わない話です。

----

まあ、強引にやるならば、すべての組み合わせを列挙し、結果を並べ換え、コスト内で一番上位の物を表示する、と言うことになります。

例えばまず、カードがA~Fの6枚あるならば、その組み合わせ数は
6C1 + 6C2 + 6C3 + 6C4 + 6C5 + 6C6
=6 + 15 + 20 + 15 + 6 + 1
=63通り、あります。

別のシートに、その63通りすべての場合の、カード種別 | カード攻撃力合計 | カードコスト合計という、63行のデータを作ります。

(ソート条件1)攻撃力 降順、(ソート条件2)コスト 昇順、でソートします。

コストの列を見ていって、手持ちコストを下回った物が、最適解となります。
なお、カードが6枚なら、作業用シートは上記のように63行ですみますが、カードの数が増えるにつれ、行数は等比級数的に増加してしまいます。(だから、最適解問題は難しいのです)

----

すべての場合分けのシートを作る部分で、マクロが必要でしょうね。これは立派なプログラミングとなります。

その後のソート作業・抽出作業もマクロによって組めます。
ソート結果の表が出たならば、最後の抽出表示ぐらいは式で出来ますが。

式だけでは到底出来そうにない、と言うことがおわかりいただけるでしょうか。

なお、2番目の質問については、そのとおりCountif()でOKです。
他に条件がいろいろ付くなら、また違ってきますが。

投稿日時 - 2012-10-11 12:47:50

お礼

回答ありがとうございます。

URLも読みました。
決められた数値の中で最も高い組み合わせを選ぶということを最適解問題、というのですね。
式だけでは無理がある、そういった専門の知識が必要ということもよくわかりました^^;

詳しい解説本当にありがとうございました。

投稿日時 - 2012-10-11 13:04:23

ANo.4

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

>●決められた攻撃Pの中で、一番強い攻撃力のデッキを表示させたい

 どの様なカードの組合せならば同時に使用できるのか、又は、どの様な組み合わせならば使用する事が出来ないのか、又、無制限に何枚でも攻撃カードを同時に使う事が出来るのか、或いは枚数制限があって何枚までなら同時に使う事が出来るのか、また、「自分が使うカードの組わせ」や「相手が使用しているカードとの相性」等によって攻撃力はどの様に変化するのか、等々、そのゲーム特有のルールによって、どの様な事が出来て、どの様な事は出来ないのか、という事を御説明頂けなければ、回答のしようがないと思います。

>●同じ属性のカードが何枚あるか表示させたい
>こちらはCOUNTIFで合っていますか?

 合っていますが、質問者様が仰る「同じ属性」とは、「その場に出しているカードと同じ属性のカードが何枚あるのかを、場に出しているカードを入力した横に表示させたい」という意味でしょうか?
 それとも、「全ての属性を網羅したリストがあって、そこに、各属性のカードが何枚あるのかを表示させたい」という事なのでしょうか?

投稿日時 - 2012-10-11 12:22:08

補足

ご回答ありがとうございます。
説明不足で申し訳ありません。


>●決められた攻撃Pの中で、一番強い攻撃力のデッキを表示させたい

左のピンクの表が所持しているカードを入力するリストで、その中から右の攻撃デッキという表に表示されるようにしたいです。
制限は、
・10枚以内であること
・最大攻撃Pの欄に入力した数値は超えられないこと
となっていれば問題ありません。
相手カードとの相性による補正数値はまだ正確にわかりませんので、目安の表を別に作ってあります。なので、この表の計算ではとりあえず置いておくつもりです。
カードの組み合わせは1つのデッキに何種類でも組み込む事ができるので、これも制限はありません。


>●同じ属性のカードが何枚あるか表示させたい
右の表から、4枚以上ある属性を別の枠(横にでも追加するつもりです)に抜き出し、その属性が何枚あるのかということを表示させたいです。
属性自体は3種類あり、
10枚の抜き出されたカードが属性a,a,a,b,b,a,c,a,b,bとなったら
aは5 bは4
といった感じです。

わかりにくい説明ですみません;

投稿日時 - 2012-10-11 12:55:08

お礼

No,4様の回答で、プログラミングの知識が必要となってくるようですので、さすがに諦めようと思います。
回答どうもありがとうございました。

投稿日時 - 2012-10-11 13:08:05

http://home.att.ne.jp/zeta/gen/excel/
この辺の本でも買って、ゲームでも何でも作ってください。

投稿日時 - 2012-10-11 12:01:32

お礼

そうですね、どうもありがとうございました。

投稿日時 - 2012-10-11 13:05:17

ANo.1

タダの感想です。

その労力とやる気を勉強に生かせば「大成する」と思うんですけどね~(・ω・)

投稿日時 - 2012-10-11 11:41:26

お礼

書き込みありがとうございます。

同じくらい仕事にやる気と労力を注いでいますので問題ありません。
質問に対する「感想」などは必要ありませんので、「回答」をよろしくお願いいたします。

投稿日時 - 2012-10-11 11:59:33

あなたにオススメの質問