• ベストアンサー

Excelの条件式を作りたいのですが・・・

たとえば、A1のセルに 00~10 の値を入力したなら、A2のセルに"level-1"と表示 11~20 の値を入力したなら、A2のセルに"level-2"と表示 21~30 の値を入力したなら、A2のセルに"level-3"と表示 31~40 の値を入力したなら、A2のセルに"level-4"と表示 41~50 の値を入力したなら、A2のセルに"level-5"と表示 させるには、どうやって式を作ったらいいのでしょうか? また、、この作業をマクロで行うために、 どうやってやったらいいのでしょうか? ※OS:Windows XP Home , Excel:XP (version2002)

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

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

 IF文もいいですが、別にVLOOKUP(又はHLOOKUP)関数を使う方法を挙げたいと思います。  シート(Sheet2)を別に1つ作って、左上に次のように入力します。 0 level-1 11 level-2 21 level-3 31 level-4 41 level-5  それから、元のシートのA2に =VLOOKUP(A1,Sheet2!$A$1:$B$5,2,TRUE) とします。こんなのどうでしょうか?

その他の回答 (8)

  • comv
  • ベストアンサー率52% (322/612)
回答No.9

こんばんは 既に関数式でのものは沢山レスが付いていますが私も1つ  =IF(COUNT(A1,">=0"),"level-"&ROUNDUP(A1/10+(A1=0),0),"") COUNT(A1,">=0")・・・入力値が数値以外かマイナス値だと0となりIF()によりA2は""となります ROUNDUP(A1/10+(A1=0),0) 入力値を1/10にした後、整数第1位に切り上げて います。 ただし0が入力された時は切上げても0となるので +(A1=0) の部分で 0が入力された時のみ TRUEとなり 四則演算で利用すると TRUE=1 となります。 よかったら試してみて下さい

  • TUNE0040
  • ベストアンサー率26% (220/842)
回答No.8

うわぁあああ なんかとっちらかっちゃってて すみません もう一度整理しますね。 セルA2に入力する正しい関数は、 =IF(A1=0,"LEVEL-1",CHOOSE(INT((A1+9)/10),"LEVEL-1","LEVEL-2","LEVEL-3","LEVEL-4","LEVEL-5")) です。たびたびどうもすみません。 いずれにせよマクロではなく関数でできますよ。

  • TUNE0040
  • ベストアンサー率26% (220/842)
回答No.7

すみません 間違ってました 下のNo.4の者です 正しくは「・・・CHOOSE(INT((A2+9)/10),・・・」です。 10の位を算出する部分の式が間違ってました。訂正します。

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

例えばD1:E5に下記表を作る。 (D列)(E列) 0 level-1 11 level-2 21 level-3 31 level-4 41 level-5 A1に値をいれるとしてB1セルに関数式 =VLOOKUP(A1,$D$1:$E$5,2,TRUE)をいれB2以下に複写すれば良い。 表を表す範囲はコピーで変化しないように、絶対番地にすることと、第3引数Trueに指定すること、表の数値は 昇順にしておくことが注意事項です。 マクロを組むメリットは勉強する以外では、お勧めしません。未入力のB列セルに0を出さないように出来ますが 略。

  • TUNE0040
  • ベストアンサー率26% (220/842)
回答No.4

どういうワークシートなのかわかりませんが セルA2に次の関数を入れてください。 セルA1の値は0~50という条件で設定してます。 =IF(A1=0,"LEVEL-1",CHOOSE(INT((A1-1)/10),"LEVEL-1","LEVEL-2","LEVEL-3","LEVEL-4","LEVEL-5")) CHOOSE関数については、EXCELのヘルプを参照してください。

回答No.3

ちょっと難しく考えてしまったかもしれません。 >00~10 の値を入力したなら 00というのは0(値)のことですか?それとも敢えて00(文字列)としたんですか?文字列だと大きさの判定が出来ないので0だとは思いますが…。 また、10.5のときはどうしますか?そういう入力は無視して良いのか、何らかのエラーメッセージのようなものが必要なのか? なんて考えてしまいました。 マクロより式の方が簡単だと思いますが、さらにマクロも知りたいのでしたら、補足して下さい。

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

=IF(OR(A1<0,A1=""),"",IF(A1<=10,"level-1",IF(A1<=20,"level-2",IF(A1<=30,"level-3",IF(A1<=40,"level-4",IF(A1<=50,"level-5","お前はもう十分強い")))))) マクロはちょっとわかりません。

参考URL:
http://www.moug.net/skillup/adpc/an019-1.htm,http://www.moug.net/skillup/adpc/an019-1.htm?PRINT
  • Take_chan
  • ベストアンサー率39% (64/164)
回答No.1

このくらいでしたらマクロを組まなくても、IF文で書けますよ。 例えば次の式をA2のセルに貼り付けてください。 IF文は、 =IF(条件式,条件式が成り立つ場合,条件式が成り立たない場合) と表せます。最初に0以上11未満か?そうであれば「level1」 そうでなければ、11以上21未満か?そうであれば「level2」 そうでなければ。。。。というように書くことができます。 =IF((0<=A1)*(A1<11),"level-1",IF((11<=A1)*(A1<21),"level-2",IF((21<=A1)*(A1<31),"level-3",IF((31<=A1)*(A1<41),"level-4",IF((41<=A1)*(A1<51),"level-5","")))))

関連するQ&A