dポイントプレゼントキャンペーン実施中!

お世話になります。

このようなスコアに対するポイント表があります。

スコアポイント表

スコア      ポイント
500以上      → 50ポイント
500未満400以上 → 40ポイント
400未満300以上 → 30ポイント
300未満200以上 → 20ポイント
200未満100以上 → 10ポイント
100未満      → 5ポイント


各個人ごとのスコアから、このスコアポイント表を対応づけて
ポイントを表示したいのですが、IF関数を使うととても入れ子が
多くなってしまいいい数式にならないため、わかりやすく表示する
方法がないかと思い質問いたしました。

よろしくお願いいたします。

A 回答 (6件)

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
    • good
    • 0
この回答へのお礼

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

大変ありがたい回答なのですが、スコアは
200ぴったりなどではなく、212や345などハンパな数字があります。

この場合ですとどうしたらよいでしょうか・・・
よろしければ再度回答よろしくお願いいたします。

お礼日時:2007/10/12 17:33

>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か関数の本よく読んでください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/16 09:16

NO3です。


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

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

実際試してみました。ちゃんと期待通りの結果が得られました。
ネットで検索してみましたが、VLOOKUP関数のTRUE型について、
知らずに勘違いしていたことがわかりました。

今回でとても勉強になりました。ありがとうございました。

お礼日時:2007/10/16 09:14

規則性が有るか無いかで、


それに見合う式を、コンパクトに考える訳で・・・
最初の質問中に、それらの条件を全て提示された方が良いです。

=IF(A1="","",Lookup(A1,{0,100,200,300,400,500,525,550},{5,10,20,30,40,45,50,50}))
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2007/10/16 09:12

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)とします。ポイントが変わったら、ポイントを入れ替えるだけでできますが。これは検索値が表にない場合は検索値未満の最大値が検索になるので、スコアの基準が変わっても応用できます。ただし、昇順に(小さい順)に並んでいないとダメですが。
    • good
    • 0
この回答へのお礼

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

なるほど。Vlookup関数を使うのですね。
大変ありがたい回答なのですが、スコアは
200ぴったりなどではなく、212や345などハンパな数字があります。

この場合ですとどうしたらよいでしょうか・・・
よろしければ再度回答よろしくお願いいたします。

お礼日時:2007/10/12 17:33

次の方法は如何でしょうか。


=IF(A1<>"",IF(A1<100,5,MIN(50,FLOOR(A1/10,10))),"")
    • good
    • 0
この回答へのお礼

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

ご回答の関数でできました。すごい高度な方法ですね。

ですが、実際のスコア表はもうちょっと複雑で・・

24単位で表が変化するのです。
549~525→50
524~500→45
のようにです。

例が悪くて申し訳ないです。
もしおわかりになりましたら、またの回答よろしくお願い
いたします。

お礼日時:2007/10/12 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!