• ベストアンサー

Excel IF関数について

いつもお世話になります。 Win XPpro OFFICE2003です。 ここの過去ログを見てよく関数を意味がよくわからないまま拝借してるんですが =IF(AND(O7>=1,A<=19),0,IF(AND(O7>=20,O7<30),20,IF(AND(O7>=31,A<=100),50,IF(AND(O7>=101,O7<500),100,IF(AND(O7>=501,A<=1000),150,IF(AND(O7>=1001,O7<3000),200,IF(AND(O7>=3001,A<=10000),250,))))))) なぜか#NAME?になります。 ネストが7つまでということなので省略したんですが 1~20なら0 21~30なら20 31~100なら50 101~500なら100 501~1000なら150 1001~3000なら200 3001~10000なら250 10001以上なら”要相談” としたいだけなんですが。 最近VLOOKUPをみなさまのおかげで活用できるようになり別シートに入れたかったんですがあまりの多さと重さに断念しました。IF関数だけではなく他に方法があればぜひご教授下さい。 よろしくお願い致します。

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

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

vlookupを使ってみましょう。 ●データテーブルの用意 まずは、データテーブルを以下のように作り、 このセルを範囲指定し「list」という名前を付けます。    1     0   21    20   31    50   101   100   501   150  1001   200  3001   250 10001 要相談 ●Vlookup  A1に数値を入れ場合、  =VLOOKUP(A1,list,2,TRUE)  とすれば、目的の答えが返ってきます。 ※ただし、1未満ではエラーが出ますので、エラーチェックも行う場合は、  =IF(A1>=1,VLOOKUP(A1,list,2,TRUE),"") とします。

makirabi
質問者

お礼

回答ありがとうございます。 リストで対応できるとは目から鱗です。 他のにも応用ができて効率がかなり上がりました。 どうもありがとうございました。

その他の回答 (6)

  • Vamp-8
  • ベストアンサー率30% (12/39)
回答No.7

IF文での判断対象になるセルが「O7」で、0以下がないのなら、 =IF(O7<=20,0,IF(O7<=30,20,IF(O7<=100,50,IF(O7<=500,100,IF(O7<=1000,150,IF(O7<=3000,200,IF(O7<=10000,250,"要相談"))))))) で行けます。 IF(条件,条件が成立したときの処理,条件が成立しなかったときの処理)です。 IF(O7<=20,0,IF(O7<=30,20,IF(… というのは、もしO7が20以下だったら0、20以下じゃなくて(←21以上で)もし30以下だったら… という意味になります。 わかりにくいですね…。 慣れだと思います。 頑張ってください!

makirabi
質問者

お礼

丁寧な解説ありがとうございます。 IFの意味をよくわかってませんでした。 勉強不足ですいません^^; ありがとうございました。

  • MrBoon
  • ベストアンサー率63% (52/82)
回答No.6

またまたすみません。No.2です。 また式を間違えてしまいました。 今度こそ正しくは、 =IF(O7<21,0,IF(O7<31,20,IF(O7<101,50,IF(O7<501,100,IF(O7<1001,150,IF(O7<3001,200,IF(O7<10001,250,"応相談"))))))) でした。 何度もたびたびすみませんでした。  ※高度な式は、デバッグが大変なのです(苦笑) お邪魔しました。。。。

makirabi
質問者

お礼

何度もありがとうございます。 わかりにくいのにここまでしてくださって感謝です。ペコリ(o_ _)o)) またご質問させていただいた時にはよろしくお願い致します。

  • MrBoon
  • ベストアンサー率63% (52/82)
回答No.5

すみません。No.2です。 式を間違えてしまいました。 正しくは、 =IF(O7<21,0,IF(O7<31,20,IF(O7<101,50,IF(O7<501,100,IF(O7<1001,150,IF(O7<3001,250,IF(O7<10001,250,"応相談"))))))) でした。 すみませんでした。 この式だと、  マイナスの数字 =0  ゼロ      =0  数字以外のもの =応相談  10001以上のもの =応相談 になるので、ご注意くださいませ。 それでは。。。。。。。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.4

Sheet2のA1~A8に1,21,31,101,501,1001,3001,10001 Sheet2のB1~B8に0,20,50,100,150,200,250,要相談 と用意し、数式を以下のように修正してみてください。 =VLOOKUP(O:O,Sheet2!$A:$B,2,1) 頑張ってくださいヽ(^。^)ノ

makirabi
質問者

お礼

回答ありがとうございます。 VLOOKUPもまだまだ勉強不足ですね^^; すいませんでした。 また何か質問させていただく際にはよろしくお願い致します。

  • MrBoon
  • ベストアンサー率63% (52/82)
回答No.2

目的の数値が「O7」(オーセブン)に入っているとして、 =IF(O7<21,0,IF(O7<31,20,IF(O7<101,50,IF(O7<501,100,IF(O7<1001,150,IF(O7<3001,IF(O7<10001,250,"応相談"))))))) でやってみてください。 ※ただし、0や負の数字が入っていても「0」(ゼロ)になるので、 事前のチェックを忘れない様にして下さいね。 それではがんばって下さい。 ご参考になれば幸いです。

  • equyoo
  • ベストアンサー率17% (11/62)
回答No.1

「A<=19」「A<=100」「A<=1000」「A<=10000」がだめなのでは? この関数式を見ていると、セルO7の数字が1~20なら0(以下略)にしたいんですよね? これだけじゃあ、解決にならないかな?

makirabi
質問者

お礼

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

関連するQ&A

専門家に質問してみよう