ポケモン種族値クイズをスプレッドシートでランダム生成する
どうもこんにちは、マイトです。前回ポケモンしりとり(ポケモンしりとりのお題をスプレッドシートで生成する(多機能)【配布あり】 - maito's diary)を作って以来、スプレッドシートでおもちゃを作るのに完全にハマりました。しりとりも確かに面白いですが、ポケモン対戦勢としては、「永遠に遊んでいられる!」っていう遊びがありますよね。
前回のしりとりよりもかなり簡単に出来ました。スプレッドシート入門的にちょうどいい難易度だと思いますので、自分で作ってみたい!って人はぜひぜひ挑戦してみてください。前回よりも丁寧に作り方を書いていくつもりです。
1.スプレッドシート解説
4枚のシートで構成されています。
①「シート1」
ポケモンリストです。種族値はポケ徹様(【ソードシールド】ポケモン種族値リスト/ランキング|ポケモン徹底攻略)、ポケモンのタイプはポケモンWiki様(https://wiki.%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3.com/wiki/%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3%E4%B8%80%E8%A6%A7)からコピーしてきました。
この2つのリストにはズレがあります。wikiの方にはメガシンカがなかったり、フォルムの区別がなかったり…。 なので、このズレを手作業で修正していきます。(結構めんどくさい)
A列の番号は「図鑑番号」ではなく、上から順番に降って言ったものです。これを間違えると後のVLOOKUP関数でエラーが出ますので注意してください。
②「問題」
A1のセルに、乱数を生成するRANDBETWEEN関数が入ってます。(この乱数はヒントになってしまうので、文字を白色にすることで隠してます。)
B4のセルには
=vlookup($A$1,'シート1'!$A:$I,3,false)
という数式が入ってます。
VLOOKUP関数は、「特定の数字を与えられた範囲の左の列から探し、その数字があるセルからn個右を返す」という関数です。
VLOOKUP(探す数字,探す範囲,何列目の値を返すか)
という使い方です。
これによって、乱数と同じ値をシート1のA列から探し、その右にある数字(種族値)を返すようになります。
注意としては、探す数字が同じ列に2つ以上あるとエラーが出るという点。ネットからそのままコピーしてきたままだと「原種」と「リージョン」に同じ番号が振られてますので、番号を自分で振り直す必要があります。
③「ヒントあり」
問題のヒントとして、②に加えてタイプを表示したシート。やっている事は②と同じなので割愛。
注意としては、ここのシートで再びRANDBETWEEN関数を使ってはいけないということ。②のシートのA1のセルから取得しないと、別の乱数になり、別のポケモンを指してしまいます。(このミスは初心者にありがち)
④「答え」
答えのポケモンを取得するのもお馴染みのVLOOKUP関数。
この関数さえ使いこなせれば結構作れるようになりますね。
2.実際に解いてみよう
実際に生成した問題を何問かを貼っていきます。
第1問!
対戦をやっている人なら1度は苦戦したことがあるはず(主にシングル勢)
正解は…
個人的に戦いたくないポケモン第2位です。(ちなみに1位はオニゴーリ)
続いて第2問!
またもや耐久に厚いポケモンですね。
正解は…
デスバーンは攻撃と特攻が逆ですので覚えておきましょう。
第3問!
かなり高水準ですね、これは厨ポケに違いない
正解は…
察し()
メガシンカポケモンが入って来ると難易度高くなりますね。
最後の問題です
進化前でしょうか…これは難しい
正解は…
進化前が出た時は絶望感ありますね。
でも進化前の種族値を見て「こんなにS高いんだ」っていう発見があったりしますよね。
3.終わりに
今回は完全にVLOOKUP関数さえ使えれば作れるので、この関数は便利だなぁと思うばかりです。今度はスプレッドシートではなく、プログラミング言語を使ったアプリケーション的なものにも(気が向いたら)挑戦しようかなーと思っている次第です。
あと完全にどうでもいい話ですが、1年間使ったパソコンが急に壊れました。急にパソコンが壊れても大丈夫なように、大事なデータはクラウドに保存しておきましょう。(戒め)
閲覧のみ可能です。ブラウザの更新を押すと問題が更新されます。
それでは、読んでいただきありがとうございました!