- ベストアンサー
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,"")))) このような入力を行ったのですが上手くいきません。 間違いについてご指摘頂きたいです。 よろしくお願いします。
- みんなの回答 (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は昇順としておく必要があります。
その他の回答 (3)
- hananoppo
- ベストアンサー率46% (109/235)
トリッキーな方法ですが、論理式を使った次のような数式でもよいです。 =(O5>0.5)*10^(O5>2)*10^(O5>5)
お礼
新たな方法についてご提案頂きありがとうございます。 参考にさせて頂きます。
- MARU4812
- ベストアンサー率43% (196/452)
もともと閾値とイコールの時がどっちなのか質問文では不明だけど、 #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 は先頭からプログラムが入れ子になってるように実行される と考えた方がいいですね。 ヘルプに使用例が載ってるのでよく読んでみてください。
お礼
わかりにくい説明で申し訳ございません。 参考になりました。 ありがとうございます。
- SaKaKashi
- ベストアンサー率24% (755/3136)
=IF(O5<0.5,0,IF(O5<2,1,IF(O5<5,10,IF(O5>5,100,""))))
お礼
ご回答ありがとうございました。 希望通り実行することができました。
お礼
ご回答ありがとうございます。 勉強になりました。