• ベストアンサー

【エクセル】スコア表から対応するポイントを表示したい

お世話になります。 このようなスコアに対するポイント表があります。 スコアポイント表 スコア      ポイント 500以上      → 50ポイント 500未満400以上 → 40ポイント 400未満300以上 → 30ポイント 300未満200以上 → 20ポイント 200未満100以上 → 10ポイント 100未満      → 5ポイント 各個人ごとのスコアから、このスコアポイント表を対応づけて ポイントを表示したいのですが、IF関数を使うととても入れ子が 多くなってしまいいい数式にならないため、わかりやすく表示する 方法がないかと思い質問いたしました。 よろしくお願いいたします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

NO1です。以下の表を作成して、次の関数で如何でしょうか。 =if(a1<>"",VLOOKUP(a1,C1:D7,2,TRUE),"") 尚、その他ポイントバリエーションは表を調整して下さい。 C  D 1  5 100 10 200 20 300 30 400 40 500 45 525 50

noname#79106
質問者

お礼

回答ありがとうございます。 大変ありがたい回答なのですが、スコアは 200ぴったりなどではなく、212や345などハンパな数字があります。 この場合ですとどうしたらよいでしょうか・・・ よろしければ再度回答よろしくお願いいたします。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

>200ぴったりなどではなく、212や345などハンパな数字があります。 VLOOKUP関数TRUE型を知らないための、反応です。 VLOOKUP関数には2種類あります。第4引数で、TRUEか、FALSEで指定します。 TRUE型  1つの範囲からーー>1つの値(範囲はいくつあっても良いが)を導き出す関数 FALSE型  コードから名前を割り出すときのように、1対1の対応を表から検索します。 本件は前者です。表のつくり方に注意を要します。表の行の筋の作り方で、以下、以上、こえる、未満などの場合の数字のいれ方です。 これらは昇順、降順など整然と並んでいる必要があります。 FALSE型はその必要がありません。 ーー LOOKUPと付いた関数はVLOOKUP,HLOOKUP、LOOKUP2種の4種類あります。 有名有用な関数で、しばらくエクセルを使っておれば、知らないのは、不思議なくらいです。ビジネス向けの雑誌○経PC21など毎月のように解説が出てきます。 WEB照会しても腐るほど出てきます。VLOOKUPが一番使われるが、WEBか関数の本よく読んでください。

noname#79106
質問者

お礼

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

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO3です。 実際に試して頂ければ、分かりますが提案の関数は、検索値 が見つからない場合には、検索値未満で最も大きい値が使用されます。 従って、212なら200、345なら300の行を抽出しますので問題ありません。

noname#79106
質問者

お礼

回答ありがとうございます。 実際試してみました。ちゃんと期待通りの結果が得られました。 ネットで検索してみましたが、VLOOKUP関数のTRUE型について、 知らずに勘違いしていたことがわかりました。 今回でとても勉強になりました。ありがとうございました。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.4

規則性が有るか無いかで、 それに見合う式を、コンパクトに考える訳で・・・ 最初の質問中に、それらの条件を全て提示された方が良いです。 =IF(A1="","",Lookup(A1,{0,100,200,300,400,500,525,550},{5,10,20,30,40,45,50,50}))

noname#79106
質問者

お礼

回答ありがとうございます。 そうですね、今度の質問から気をつけて条件を全て提示するように します。 ありがとうございました。

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.2

Vlookup関数ではどうでしょう。A1に数値を入れてB1にポイントを出すとして、E1から縦にE6まで順に1,100,200,300,400,500といれF1から縦にF6まで5,10,20,30,40,50と入れておきB1に=VLOOKUP(A1,E1:F6,2)とします。ポイントが変わったら、ポイントを入れ替えるだけでできますが。これは検索値が表にない場合は検索値未満の最大値が検索になるので、スコアの基準が変わっても応用できます。ただし、昇順に(小さい順)に並んでいないとダメですが。

noname#79106
質問者

お礼

回答ありがとうございます。 なるほど。Vlookup関数を使うのですね。 大変ありがたい回答なのですが、スコアは 200ぴったりなどではなく、212や345などハンパな数字があります。 この場合ですとどうしたらよいでしょうか・・・ よろしければ再度回答よろしくお願いいたします。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 =IF(A1<>"",IF(A1<100,5,MIN(50,FLOOR(A1/10,10))),"")

noname#79106
質問者

お礼

回答ありがとうございます。 ご回答の関数でできました。すごい高度な方法ですね。 ですが、実際のスコア表はもうちょっと複雑で・・ 24単位で表が変化するのです。 549~525→50 524~500→45 のようにです。 例が悪くて申し訳ないです。 もしおわかりになりましたら、またの回答よろしくお願い いたします。

関連するQ&A