• ベストアンサー

excel IF文について教えて頂きたいです

excelのIF文を用いセルO5に対して 0~0.5のとき0 0.5~2.0   1 2.0~5.0  10 5.0~  100 のような分類を行いたく =IF(0<O5,0,IF(0.5<O5,1,IF(2<O5,10,IF(5<O5,100,"")))) このような入力を行ったのですが上手くいきません。 間違いについてご指摘頂きたいです。 よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

ご例示のIF文ですが、数値比較を昇順でするなら比較演算子が逆です。 又、階層条件が重複している。(例えば、0.5は0なのか1なのかが曖昧)  =IF(0.5>O5,0,IF(2>O5,1,IF(5>O5,10,100))) IF関数で3つ以上ネストする事はできるならばやめた方が良い(文法上メンテナンスが面倒)、 できればVLOOKUPやLOOKUP関数で対応した方がすっきりしますが如何でしょうか。 一例です。  0~0.5未満、0.5~2未満、2~5未満、5以上の条件です。 (1)=LOOKUP(O5,{0,0.5,2,5},{0,1,10,100}) (2)=VLOOKUP(O5,A1:B4,2,TRUE)    A1:0,B1:0    A2:0.5、B2:1    A3:2、B3:10    A4:5、B4:100   因みにA1:B4は昇順としておく必要があります。

moozooo
質問者

お礼

ご回答ありがとうございます。 勉強になりました。

その他の回答 (3)

  • hananoppo
  • ベストアンサー率46% (109/235)
回答No.3

トリッキーな方法ですが、論理式を使った次のような数式でもよいです。 =(O5>0.5)*10^(O5>2)*10^(O5>5)

moozooo
質問者

お礼

新たな方法についてご提案頂きありがとうございます。 参考にさせて頂きます。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

もともと閾値とイコールの時がどっちなのか質問文では不明だけど、 #1 さんの回答の > =IF(O5<0.5,0,IF(O5<2,1,IF(O5<5,10,IF(O5>5,100,"")))) だとちょうど5の時に抜けちゃうかも? まぁ、そのくらいは質問者が検証すべきだけどね。 全部含まないとすれば、例えば。。。 =IF(O5<=0,"",IF(O5<0.5,0,IF(O5<2,1,IF(O5<5,10,IF(O5>=5,100,""))))) とか? > 間違いについてご指摘頂きたいです。 関数を複数入れ子に使った時は、計算結果が値として 戻ってくる関数は中から考えるんだけど、この場合は TRUE、 FALSE で成り立つほうが実行されるという見方をしないと いけないです。 でないと、質問文の計算式でも、一番中のIF(5<O5,100,"") だけ見てしまうとそこで終わっちゃいますよね? IF は計算式では無いという理解でいいのかな。 ちょっと説明しようと思って、自分でも分かってない事に 気付いてしまいましたw IF は先頭からプログラムが入れ子になってるように実行される と考えた方がいいですね。 ヘルプに使用例が載ってるのでよく読んでみてください。

moozooo
質問者

お礼

わかりにくい説明で申し訳ございません。 参考になりました。 ありがとうございます。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

=IF(O5<0.5,0,IF(O5<2,1,IF(O5<5,10,IF(O5>5,100,""))))

moozooo
質問者

お礼

ご回答ありがとうございました。 希望通り実行することができました。

関連するQ&A