• 締切済み

IF関数

みなさん教えてください。 下記のIF関数で、正確な数値が出ません。ドコを訂正すればよろしいでしょうか?Vlookupだと参照する数値を入力する必要がある為、IF関数で入力したいと思っております。 検索値(E3) 計算式 これ以下 引数 1000 9700 3000 17500 5000 21000 10000 26900 15000 35300 20000 43600 25000 51300 30000 59400 35000 67300 40000 75300 45000 83500 50000 91400 55000 99500 60000 106600 これは数値がおかしくなって駄目でした。 =IF(E3<1000,IF(E3<3000,IF(E3<5000,IF(E3<10000,IF(E3<15000,9700,17500),21000),26900),35300),IF(E3>20000,IF(E3>25000,IF(E3>30000,IF(E3>35000,IF(E3>40000,43600,51300),59400),67300),75300),IF(E3>45000,IF(E3>50000,IF(E3>55000,IF(E3>60000,83500,91400),99500),106600)))

みんなの回答

  • yu--u
  • ベストアンサー率10% (16/149)
回答No.4

こんにちは。 基本的にどのような値を求めたいのかはわからないのですが、普通に考えれば不等号か数字を比べる順番が間違っていると思います。 IFの後には(比較,YESの場合,NOの場合)となるのでそもそも最初の時点で1000よりも小さかったら3000と比べるの時点で違うのでは無いでしょうか? 後はIFが多すぎるのでこれであれば、セルを分ける必要があります。 後は今のままの式では45000より大きかった場合の値が入って無いと思います。 わかりにくかったですけどがんばってください。

hyokohama
質問者

お礼

=IF(E3<25001,IF(E3<20001,IF(E3<15001,IF(E3<10001,IF(E3<5001,IF(E3<3001,IF(E3<1001,9700,17500),21000),26900),35300),43600),51300),IF(E3>25000,IF(E3>30000,IF(E3>35000,IF(E3>40000,IF(E3>45000,IF(E3>50000,IF(E3>55000,106600,99500),91400),83500),75300),67300),59400))) ↑の式で自己完結できました。 ありがとうございます。

noname#123709
noname#123709
回答No.3

#1です。 間違えました。 無視して下さい。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

条件が逆ですね。それとも最初だけ不等号が逆向き? 初めにE3<1000ですから以降のE3<3000...はすべて真になります。 E3<15000→E3<1000の順番で範囲を狭めるようにしなければ駄目です。 それにこのようにネストしたんじゃ大変でしょう。 =VLOOKUP(E3,表の範囲,2,TRUE) ただこのままだとE3<1000はエラーになります。 表の初めに金額1~1000までの時の金額を追加してください。 1~999が9700なら1行ずれてますね。

noname#123709
noname#123709
回答No.1

IF関数のHELPにも書いてあると思いますが、ネスト(入れ子)は最大7つ までとなっています。現在の数式ではそれを超えてます。

hyokohama
質問者

補足

=IF(E3<1001,IF(E3<3001,IF(E3<5001,IF(E3<10001,IF(E3<15001,IF(E3<20001,IF(E3<25001,9700,17500),21000),26900),35300),43600),51300),IF(E3>25000,IF(E3>30000,IF(E3>35000,IF(E3>40000,IF(E3>45000,IF(E3>50000,IF(E3>55000,106600,99500),91400),83500),75300),67300),59400))) ↑でできるはずなのですが・・・ 質問の式は少し間違ってましたね。 普通に7つ入れるとエラーがでますが、↑の式だとエラーはでませんのでネストの制限には引っかかってません。ドコがおかしいのでしょうかね?

関連するQ&A