- 締切済み
IF関数について
収入金額から所得をだす数式をIF関数で考えてるんですが、うまくいきません。 収入金額130万円以下の場合、収入金額-70万円 収入金額130万円超410万円以下の場合 収入金額×0.75-375000 収入金額410万円超770万円以下の場合 収入金額×0.85-785000 収入金額770万円超の場合、収入金額×0.95-1555000 の条件で、=IF(B9>7700000,IF(AND(B9<=7700000,B9>4100000),IF(AND(B9<=4100000,B9>1300000),IF(B9<=1300000,B9-700000,B9*0.75-375000),B9*0.85-785000),B9*0.95-1555000)) で自分なりにやってみたんですが、うまくいきませんでした。ご回答よろしくお願いします。
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- surounin
- ベストアンサー率28% (30/106)
マイナス対応 忘れてました(汗) =IF(C6>7700000,ROUNDDOWN(C6*0.95,0)-1555000,IF(C6>4100000,ROUNDDOWN(C6*0.85,0)-785000,IF(C6>1300000,ROUNDDOWN(C6*0.75,0)-375000,if(C6-700000<0,0,C6-700000)))) でどうでしょ
- oyaji-2
- ベストアンサー率24% (6/25)
条件の法則を考えると、境目の金額で折れる連続した折れ線になっています。そこで130万円以上では3つの条件で計算した答の最大値が求める答えになるのでは? MAX(B9*0.75-37.5,B9*0.85-78.5,B9*0.95-155.5) でも、130万円以下はこの法則が当てはまらないのでIF関数を使うしかないでしょう。
- maruru01
- ベストアンサー率51% (1179/2272)
No.7です。 >マイナス表示は0に置き換えられれば それなら、No.7の数式を以下に置き換えます。 =B9*VLOOKUP(B9/10000,{0,0;70,1;130,0.75;410,0.85;770,0.95},2,TRUE)-VLOOKUP(B9/10000,{0,0;70,70;130,37.5;410,78.5;770,155.5},2,TRUE)*10000 また、他の人のIFの回答を手っ取り早く直す場合は、 =MAX(元の数式,0) とMAX関数を大外に付けましょう。
- itman
- ベストアンサー率50% (1/2)
No.4です ・・っと、5ひとつが多かったので訂正します。すみません(-▽-;) =IF(B9<1300000,B9-700000,IF(AND(B9>=1300000,B9<4100000),B9*0.75-375000,IF(AND(B9>=410,B9<770),B9*0.85-785000,B9*0.95-1555000)))
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 IFの入れ子ではない方法を。 =B9*VLOOKUP(B9/10000,{0,1;130,0.75;410,0.85;770,0.95},2,TRUE)-VLOOKUP(B9/10000,{0,70;130,37.5;410,78.5;770,155.5},2,TRUE)*10000 ところで、収入金額70万未満はどうなるんですか? (質問欄の条件だとマイナスになりますが。)
お礼
ご回答ありがとうございます。 参考にさせていただきます。 そうなんですよね・・・マイナス表示は0に置き換えられれば最高なんですが・・ そうなると、またIFを・・・頭混乱・・
- ez_ojisan
- ベストアンサー率0% (0/0)
=if(B<=130,B-70,if(and(B>130,B<=410)=true,B*0.75-37.5,if(and(B>410,B<=770)=true,B*0.85-78.5,B*0.95-155.5))ではどうですか?
お礼
ご回答ありがとうございます。 参考にさせていただきます。 もっと早く皆さんに聞いていれば・・
- surounin
- ベストアンサー率28% (30/106)
NO2です C6は値が入っているセルを指定してください^^;
- itman
- ベストアンサー率50% (1/2)
これでいかがでしょうか。 =IF(B9<1300000,B9-700000,IF(AND(B9>=1300000,B9<4100000),B9*0.75-375000,IF(AND(B9>=410,B9<770),B9*0.85-785000,B9*0.95-15555000)))
お礼
ご回答ありがとうございます。 参考にさせていただきます。 もっと早く皆さんに聞いていれば・・
- Turbo415
- ベストアンサー率26% (2631/9774)
NO1です。 すみません、ゼロの位置は直さずに試してください。 考えるときはゼロを省略して考えたのですが、書き込むときに直していました(笑) ですから、そのまま使えるはずです。 ちなみにB1のセルに収入を入れてくださいね。B9ではありませんので。
お礼
再度のご回答ありがとうございます。
- surounin
- ベストアンサー率28% (30/106)
失礼ですが,IFの使い方が悪いですね^^; IFは入れ子で使います if(条件,成り立つときの式、成り立たないときの式) を入れ子で使ってください =IF(C6>7700000,ROUNDDOWN(C6*0.95,0)-1555000,IF(C6>4100000,ROUNDDOWN(C6*0.85,0)-785000,IF(C6>1300000,ROUNDDOWN(C6*0.75,0)-375000,C6-700000))) でどうでしょうか?
お礼
ご回答ありがとうございます。 そうなんです。所得を求める際は小数点以下切捨てなくてはならないんですよね! まさに求めていた数式です。 早速使わせていただきます。
- 1
- 2
お礼
再度のご回答ありがとうございます。