• ベストアンサー

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

  • ExcelのIF関数で条件が7つ以上ネストされる場合の対応方法

    ExcelのIF関数で以下のように条件が7つ以上ネストされる場合の対応方法を教えてください(if関数だと条件が最大7つまでしか指定できない為)。 IF(ISTEXT(VLOOKUP($A2,sheet1!$B:$AP,36,FALSE)),1, IF(ISTEXT(VLOOKUP($A2,sheet2!$b:$q,10,FALSE)),2, IF(ISTEXT(VLOOKUP($A2,sheet3!$I:$BO,13,FALSE)),3, IF(ISTEXT(VLOOKUP($A2,sheet4!$A:$Z,6,FALSE)),4, IF(ISTEXT(VLOOKUP($A2,sheet1!$B:$AP,38,FALSE)),1, IF(ISTEXT(VLOOKUP($A2,sheet2!$b:$q,12,FALSE)),2, IF(ISTEXT(VLOOKUP($A2,sheet3!$I:$BO,16,FALSE)),3, IF(ISTEXT(VLOOKUP($A2,sheet4!$A:$Z,5,FALSE)),4, 4))))))))

  • IF関数の複合

    下記の4つのIF関数を合体させたいのですが、どうすればいいでしょうか? =IF(AND(BI11=200,BA9>=30),VLOOKUP(BI13,BQ3:CI17,16,0),VLOOKUP(BI13,BQ22:CI37,16,0)) =IF(AND(BI11=200,60=>BA9>30),VLOOKUP(BI13,BQ3:CI17,17,0),VLOOKUP(BI13,BQ22:CI37,17,0)) =IF(AND(BI11=200,120=>BA9>60),VLOOKUP(BI13,BQ3:CI17,18,0),VLOOKUP(BI13,BQ22:CI37,18,0)) =IF(AND(BI11=200,150=>BA9>120),VLOOKUP(BI13,BQ3:CI17,19,0),VLOOKUP(BI13,BQ22:CI37,19,0))

  • エクセルの関数について教えてください

    エクセルでvlookupを使い得た結果がAだとします。 次にif関数でvlookup関数の結果のセルがAならばと言う式を作りました。 が、if関数が認識してくれません。 同じif関数の式でキーボードからAを入力したら結果が出ます。 vlookup関数のセルにはAでなく式しか入ってないからでしょうか? vlookup関数の結果をif関数で認識する方法をお願いします。

  • excelのand関数、IF関数について

    エクセルのand関数、IF関数について質問です。 非常に簡単なことで申し訳ないのですが、仮にセルA2が5でかつセルB2が0の時にtrueとしたいときの関数は=and(A2=5,B2=0)であっているでしょうか。また、これをIFの関数で表す場合、=IF(A2=5,IF(B2=0,1,0),0)で同じ意味になるでしょうか?(IFの方は条件を満たす場合を1、満たしていない場合を0としたつもりです) ANDの方の関数は、多分合っていると思うのですが…。エクセルに入力しても、正しい結果が得られなかったので、質問させていただきました。初心者です。つまらない質問で申し訳ないのですが、よろしくお願いします。 

  • IF関数で閏年を抽出

    ExcelでA1に生年月日が入っていて 「閏年生まれの場合+1、それ以外は+2」 としたいのですがどの様な関数との組み合わせがよろしいのでしょうか? B1セルに =IF(AND(16163<=A1,A1<=16527),A1+1,IF(AND(17624<=A1,A1<=17988),A1+1,IF(AND(19085<=A1,A1<=19449),A1+1,IF(AND(20546<=A1,A1<=20910),A1+1,A1+2)))) ですとIFの限界が来たときにエラーになってしまいます。 過去質問にも似たようなものがありましたが、この場合でもMATCHやVLOOKUPを使うと上手くいくのでしょうか? よろしくお願いいたします。

  • IF関数についておしえてください。

    お世話になります。 作成している表の中で、利用しようとおもっている関数について教えてください。 A1セルに下記のようなIF関数を作成しました。 =IF(AND(B2>=1,C2<=0),"○",IF(AND(C2>=1,B2<=0),"○",IF(AND(B2>=1,C2>=1),"○",IF(AND(B2<=1,C2<=1),"")))) B2セルは別シートからVLOOKUPを利用して検索してきて、数字を表示させているセルのため、 該当しない場合”#N/A”と 表示されるところがありました。それで、”=IF(ISERROR”を利用して、#N/Aと表示される場合、空白で表示される数式にしたところ、今度はA1セルが条件にあっていないのに”○”と表示されるようになりました。≪”B2=空白(”#N/A”),C2<=1の場合にあたるのだと思います。≫ *B2セルを”空白”ではなく”0”で表示させるようにしても同様に”○”となりました。 A1セルに、  B2>=1,C2<=0の場合”○”  C2>=1,B2<=0の場合”○”  B2>=1,C2>=1の場合”○”  B2<=1,C2<=1の場合"空白" で表示できる方法をご存じの方、ご教示お願いいたします。 簡単なことなのかもしれませんが、エクセル関数初心者のため、大変困っております。 うまく、不明な点を説明できていませんでしたら、申し訳ございません。何卒 よろしくお願いいたします。

  • Excel2003の関数のネストの入力方法

    Excel2007のテキストでExcelを学んでしまったので、Excel2003の使い方が分からないので質問させて頂きます。 例えば、セルA1に入力されているVLOOKUP関数にエラーの場合、空白にするIF関数をネストさせたいのですが、Excel2007のテキストでは、関数をネストさせるのに、数式バーの左端の関数ボックスの▼をクリックし、関数を選択して、関数の引数ダイアログボックスでネストすることができたのに、Excel2003では、同じ操作をするとVLOOKUP関数が消えてしまい、IF関数しか入力できないのですが、Excel2003では、ネストさせる関数は、直接入力しないといけないのでしょうか?

  • これはエクセルのIF関数を使ってできますか?

    こんばんは。 エクセルで悩んでいます。 A列に、"大学"・"高校"をオートフィルタで選べるようにして、 B列に、大学なら1~4の数字、高校なら1~3の数字を入力します。 そして、C列に、A1="大学"かつB1=1なら30(ポイント)、         A1="大学"かつB1=2なら40、         A1="高校"かつB1=1なら20、         それ以外は空白 というような自動計算式を作りたいと考えています。 この場合、IF関数とAND関数で作成すればできますでしょうか。下記のような式を作成しましたが、うまくいきません。 =IF(AND(A1="大学",1),30,IF(AND(A1="大学",2),40,IF(AND(A1="高校",1),20,""))) 説明が下手で申し訳ありませんが、 なんとかアドバイスいただければ幸いです。 よろしくお願いします。

  • Excel 関数ifについて

    Excel 関数ifについて セルa1から a100の中に、たとえば 好き ということばがあるかどうかをチェックするとき、 if(countif(a1:a100,"*好き*"),1,0) と指示されました。 本来ならcountifが1より大きければ1を返すのですから、 if(countif(a1:a100,"*好き*")>0,1,0)ですよね? 論理式の >0って 省略できるんですか? 正なら真、0以下なら偽と解釈されるんでしょうか?

  • if関数のネストについて教えてください

    エクセル2003です 関数につい勉強している前期高齢者です。 IF関数のネストについて教えてください。 A1 りんご A2 みかん A3 かき  と入力する表があります。 B1せるに A3が入力されているときはA3 A3が空白のときはA2 A3とA2が空白の時はA1 と表示させたいのですが =IF(A3="",A2,IF(AND(A3="",A2=""),A1,A3)) =IF(A3="",A2,IF(A2="",A1,A3)) の式では A3とA2が空白のときに「0」となり 「りんご」と表示されません。 A3とA2が空白のときに「りんご」と表示する 式の作り方を教えてください

専門家に質問してみよう