- ベストアンサー
Excelの関数について
Excelの初心者です。Excelの関数についてfx=IF(F5<=10,"0",IF(10<F5<30,SUM((F5-10)*20),IF(F5>=30,SUM((F5-30)*15))))という関数です。F5が10以下ならば”0”を表し、10から30まで、30以上ならばそれぞれの数式の答えを表してほしいのですが、10から30までの数字をF5に代入しても”FALSE”がでてきます。関数が間違えているのでしょうか。よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
下のような図を書いてみると数式を立てやすいです。 なお、SUM(F5-10)*20 のSUMは不要ですので、 F5<=10 →No→F5<=30 →No→(F5-30)*15 ↓ ↓ Yes Yes ↓ ↓ 0 (F5-10)*20 上の図から次の式を立てることができます。 =IF(F5<=10,0,IF(F5<=30,(F5-10)*20,(F5-30)*15)) 「複数分岐もIF関数」 http://kokoro.kir.jp/excel/if-if.html 「IF関数 完璧マスター!」 http://kokoro.kir.jp/excel/if.html
その他の回答 (4)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
どれも的外れ。if関数で第三引数に進むのは第一引数の条件式が FALSEであった時だという基本を、誰も理解していないようですね。 最初のif関数でF5<=10を判定しているのですから、次のif関数に進 むのはF5>10に限られます。よってそこでの判定はF5<30で充分。最 後のif関数でのF5>30な判定にいたっては全く無駄です。 ついでにいうとF5<=10の条件式がTRUEのときになぜ文字列のゼロが 返っているのか謎ですね。普通は数値の0を返しませんか。 というわけで =if(F5<=10,0,if(F5<30,sum((F5-10)*20),sum((F5-30)*15)))
お礼
ありがとうございます。かなり簡素化できるのですね。
- ziziwa1130
- ベストアンサー率21% (329/1546)
10<F5<30→AND(10<F5,F5<30)です。
お礼
ありがとうございます。試してみます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のような式になるでしょう。 =IF(F5<=10,0,IF(AND(F5>10,F5<30),(F5-10)*20,(F5-30)*15))
お礼
ありがとうございます。試してみます。
- mc-aumsc
- ベストアンサー率32% (9/28)
2つめのIF文の中にある『10<F5<30』を『10<F5 AND F5<30』に変えてみれば、おそらく大丈夫かと…。
補足
ありがとうございます。試してみます。
お礼
ありがとうございます。図で解説していただくとわかりやすいですね。