• 締切済み

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)) で自分なりにやってみたんですが、うまくいきませんでした。ご回答よろしくお願いします。

みんなの回答

  • surounin
  • ベストアンサー率28% (30/106)
回答No.11

マイナス対応 忘れてました(汗) =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)
回答No.10

条件の法則を考えると、境目の金額で折れる連続した折れ線になっています。そこで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.9

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.8

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)))

sayu252525
質問者

お礼

再度のご回答ありがとうございます。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.7

こんにちは。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万未満はどうなるんですか? (質問欄の条件だとマイナスになりますが。)

sayu252525
質問者

お礼

ご回答ありがとうございます。 参考にさせていただきます。 そうなんですよね・・・マイナス表示は0に置き換えられれば最高なんですが・・ そうなると、またIFを・・・頭混乱・・

回答No.6

=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))ではどうですか?

sayu252525
質問者

お礼

ご回答ありがとうございます。 参考にさせていただきます。 もっと早く皆さんに聞いていれば・・

  • surounin
  • ベストアンサー率28% (30/106)
回答No.5

NO2です C6は値が入っているセルを指定してください^^;

  • itman
  • ベストアンサー率50% (1/2)
回答No.4

これでいかがでしょうか。 =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)))

sayu252525
質問者

お礼

ご回答ありがとうございます。 参考にさせていただきます。 もっと早く皆さんに聞いていれば・・

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.3

NO1です。 すみません、ゼロの位置は直さずに試してください。 考えるときはゼロを省略して考えたのですが、書き込むときに直していました(笑) ですから、そのまま使えるはずです。 ちなみにB1のセルに収入を入れてくださいね。B9ではありませんので。

sayu252525
質問者

お礼

再度のご回答ありがとうございます。

  • surounin
  • ベストアンサー率28% (30/106)
回答No.2

失礼ですが,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))) でどうでしょうか?

sayu252525
質問者

お礼

ご回答ありがとうございます。 そうなんです。所得を求める際は小数点以下切捨てなくてはならないんですよね! まさに求めていた数式です。 早速使わせていただきます。