プロが教えるわが家の防犯対策術!

エクセル関数についての質問です。
 使用ソフト:excel2003

計算結果により文字列を選択する方法についてです。
IFを使わず、別表を用いずにできる方法がないでしょうか?

 計算式:値A/値B
 
 計算結果: 0以下の場合・・・”失格”
       0~5の場合・・・”注意”
       5~7の場合・・・”標準”
       8以上の場合・・・”優秀”

このような感じに、計算式の結果により、それに対応する文字列を表示させたいと思っています。
IF分で可能ですがもっとシンプル?な方法があれば教えて頂きたい。

VOOKUP、choose、match等でできそうでできないようです。

よろしくお願いします。

A 回答 (4件)

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


=LOOKUP(セル,{-99999,0,5,8},{"失格","注意","標準","優秀"})
尚、条件は0未満、5未満、8未満、8以上としています。
    • good
    • 0
この回答へのお礼

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

正に求めていた答えです。
これでスムーズに作業が進められます。

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

お礼日時:2008/03/10 15:19

VLOOKUP関数の場合


-999 失格
   0 注意
   5 標準
   8 優秀
=VLOOKUP(検索値,範囲,2,TRUE)

CHOOSE関数の場合
=CHOOSE(MAX(MIN(検索値+1,9),0),"失格","注意","注意","注意","注意","注意","標準","標準","標準","優秀")
    • good
    • 0
この回答へのお礼

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

質問の内容に答えを出して貰っただけでなく、
ChooseでのMAXとMINの組合せ方、非常に参考になりました。
私の頭、固いなぁと感じてます。

迅速な回答、ありがとうございました。

お礼日時:2008/03/10 15:21

(1)VLOOKUP系列の関数は3種あり、配列形式のものもあります


(2)普通のVLOOKUPで配列の記述方法でもできると思う
A列の値は整数値に限定して考える。
例データ
A列   B列  C列
1注意注意
2注意注意
3注意注意
4注意注意
5注意注意
6標準標準
7標準標準
8優秀優秀
9優秀優秀
10優秀優秀
11優秀優秀
12優秀優秀
13優秀優秀
14優秀優秀
15優秀優秀
16優秀優秀
17優秀優秀
18優秀優秀
19優秀優秀
0注意注意
-1失格失格
ーーー
検索表で
F1:G5
-20失格
0注意
6標準
8優秀
100
ーーー
B列B1は=VLOOKUP(A1,$F$1:$G$5,2,TRUE)
とれて下方向に式を複写。
ーー
本質問でいう>別表を用いずにできる・・
はC1セルに
=VLOOKUP(A1,{-20,"失格";0,"注意";6,"標準";8,"優秀";100,""},2,TRUE)
と入れて下方向に式を複写。
結果は上記C列
ーーー
横方向は、(カンマ)で並べ、改行は;(セミコロン)で行うルールで、上記F1:G5のセル内容を第2引数に表現するだけ。
    • good
    • 0
この回答へのお礼

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

VLOOKUPのヘルプを見ても出来無さそうと判断していましたが、
しっかりと回答通りでできました。

丁寧な回答、ありがとうございました。

お礼日時:2008/03/10 15:23

こんにちは。



ということは、残りのMATCHかな?(^^;

でも、数値のダブりがありますね。

 計算結果: 0以下の場合・・・”失格"
       1~4の場合・・・”注意”
       5~7の場合・・・”標準”
       8以上の場合・・・”優秀”

と変えさせていただきます。

=INDEX({"失格","注意","標準","優秀"},,MATCH(MAX(C1,0),{0,1,5,8},1))

一応、これは、CHOOSE関数も使えますね。

=CHOOSE(MATCH(MAX(C1,0),{0,1,5,8},1),"失格","注意","標準","優秀")

ISERROR によるエラー処理は必要でしたら、加えてください。

例:C1 を対象とした場合
=IF(ISERROR(C1),"",INDEX({"失格","注意","標準","優秀"},,MATCH(MAX(C1,0),{0,1,5,8},1)))
    • good
    • 0
この回答へのお礼

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

こんなに速攻で、色々な回答を色々な方に教えて頂いて感謝。
(matchとかで、できなさそうと質問に書かなければ良かった・・。^^;A)

関数の組合せ、非常に勉強になりました。

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

お礼日時:2008/03/10 15:31

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