• ベストアンサー

こんな数式をつくりたいのですが

エクセルで、こんな数式をつくりたいと思っています。 おわかりになる方、教えていただけるとありがたいです。  (A) ──────  100~199   A×40%  200~299   A×30%+20 Aという数字があって、 Aが100~199のときは、A×40%が最終の値になり 200~299のときは、A×30%+20が最終の値になる。 このようにパターンがいくつかあるのです。 そして、 最終的には、 あるレコードに A 関数 最終の値 という風に3つのセルで並べたいのですが、 これっていうのはIF関数をつなげるイメージに なりますか? そのつなげ方もイマイチよくわからないので、 アドバイスいただけるとうれしいです。 長い説明ですみません。。。

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

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

為参考です。 長ったらしいですがIF関数で行うと以下のようになります。(定数値は、固定セルにすれば少々短くなります) =IF(A1<135416,54167,IF(A1<149999,A1*40%,IF(A1<299999,A1*30%+15000,IF(A1<549999,A1*20%+45000,IF(A1<833333,A1*10%+100000,A1*5%+141667))) これを最終値のセルに設定し、下方向にコピーする。 又、計算式については、この関数の計算部分を""で囲で下さい。

sacsac5
質問者

お礼

長くても、1セルにおさまるので、 たすかります。 ありがとうございました!

その他の回答 (3)

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

No.2です。 No.2の補足欄に対して。 [Sheet2]の表を以下のようにします。    A    B    C 1  0   0   54167 2 135417   0.4   0 3 150000   0.3   15000 4 300000   0.2   45000 5 550000   0.1   100000 6 833334  0.05  141667 そうして、元のシートのA1に値を入力するとして、 B1に、 =REPLACE(IF(VLOOKUP(A1,Sheet2!$A$1:$C$6,2),"+"&A1,"")&TEXT(VLOOKUP(A1,Sheet2!$A$1:$C$6,2),"×0%;;")&TEXT(VLOOKUP(A1,Sheet2!$A$1:$C$6,3),"!+0;!-0;"),1,1,) C1に、 =A1*VLOOKUP(A1,Sheet2!$A$1:$C$6,2)+VLOOKUP(A1,Sheet2!$A$1:$C$6,3) と入力して下さい。

sacsac5
質問者

お礼

助かりました。 ありがとうございました! 勉強にもなりました。

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

こんにちは。maruru01です。 各数値範囲の係数と切片の一覧表を別のシートに作ってVLOOKUPで参照するといいと思います。 別のシートが[Sheet2]とすると、[Sheet2]に、   A  B  C 1 100 0.40  0 2 200 0.30 20 3 300 0.25 30 4 ・・・・・ のように作成しておきます。 そうしたら、元のシートのA1にAの値を入力するとして、 数式は、B1に、 =A1&"×"&TEXT(VLOOKUP(A1,Sheet2!$A$1:$C$3,2),"0%")&TEXT(VLOOKUP(A1,Sheet2!$A$1:$C$3,3),"!+0;!-0;") で、 最終の値は、C1に、 =A1*VLOOKUP(A1,Sheet2!$A$1:$C$3,2)+VLOOKUP(A1,Sheet2!$A$1:$C$3,3) となります。

sacsac5
質問者

補足

丁寧にありがとうございます。 実は、本当にやりたいものを簡易化した書いたのですが、非常に複雑な式を教えていただいたので、 どの部分を参考にすればわからなくなってしまいました。。。 実際に行いたいのは、源泉徴収額の計算で、  (A) ──────── 0~135416   → 54167円 135417~149999 → A×40% 150000~299999 → A×30%+15000円 300000~549999 → A×20%+45000円 550000~833333 → A×10%+100000円 833334円以上  → A× 5%+141667円 というのがすべてです。 シートを別にしても、おっしゃるように、 最後に該当するシートに戻ってくればいいのですが、 上記をすべてまかなえればOKなのです。 すみません。 最初からこういえばよかったのですが。。。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=A1*CHOOSE(A1/100,.4,.3)+CHOOSE(A1/100,0,20) ただし100未満や300以上の場合は#VALUEが表示します。

sacsac5
質問者

お礼

早速ありがとうございました!

関連するQ&A