• ベストアンサー

エクセルで これはif関数でいいいのでしょうか?

超初心者です。 ロールプレイングゲームの経験値表のようなものを作っているのですが、数字を入れるだけでレベルが出る様にしたいと思っています。 レベルが1上るのに、前のレベルの必要経験値+50必要だとして、 それをエクセルの表に1時間ごとチェックしていきたいのです。 つまり、A列を現在の経験値、B列をレベルとして、 A1=0  B1=0 A2=50  B2=1 (純増:50) A3=150 B3=2 (純増:前のレベル必要分50+50で100) A4=300 B4=3 (純増:前のレベル必要分100+50で150) A5=500 B5=4 (純増:前のレベル必要分150+50で200) ↑ここで、もしA5に490と入れたなら、B5は条件を満たしてないので『3』のまま出るようにしたいのです。 また、もし、A5にいきなり750といれたなら、B5は4を越えてしっかり次のレベル『5』と出て欲しいのです。 わかっていただけるでしょうか・・・ 初心者ながらこれはif関数だ!と思ったのですが、 どういう式が一番いいのでしょうか? os:Me excel2000 です。 急いでいないので、お時間のある方ご教授お願いします。

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

  • ベストアンサー
回答No.2

VLOOK関数でできると思います。 SHEET2のA1からB21まで以下のテーブルを作っておきます。   A   B 1    0  0 2   50   1 3   100   2 4   150  3 5   200   4 6  ・・・・ ・・・・・・ 21 1000  20 ↑ 行番号 SHEET1のB1セルに以下の関数を入力します。 =VLOOKUP(A1,Sheet2!$A$1:$B$21,2) 必要に応じて、B1の式を以下の行ににコピーしておきます A1に経験値をいれるとB1にレベルが出ます。

bBoooooo
質問者

お礼

もう一度質問を書き直してみます。 ありがとうございました!

その他の回答 (1)

  • esprei
  • ベストアンサー率56% (718/1271)
回答No.1

もし、レベルに対する経験値の増加が一定ならば50で割れば良いかと思います。 =int(A1/50) これをB1に入れて下にコピーして下さい。 intは割った時の小数を切り捨ててくれます。

bBoooooo
質問者

お礼

すいません、質問文をもっと正確に書き直して見ます。 ありがとうございました。

bBoooooo
質問者

補足

いや、増加分が変わるから悩んでいるんです。 A列には気が向いた時に今現在の経験値の値を入れるので、前からいくら増えてるとか、次はいつレベルが上るか等は要らず、その時の経験値を入れるとその場合のレベルが出るような表を作りたいのです。 私、難しく考えすぎているのでしょうか・・・

関連するQ&A