• 締切済み

按分後の端数を求めたい

商品値引額の按分を計算→端数(余り)を一度で求めたいです。 私が今行っている方法だと、値引額を按分し商品別値引額を算出 その後、按分しきれない(端数)を算出します。 例) 商品A:1000円(1個) 商品B:900円(2個)  商品合計:1900円  これに対して、値引:150円 商品A按分金額:150×(1000÷1900)=78.94...         78円(小数点以下を切捨て) 商品B按分金額:150×(900÷1900)=71.05...         71円(小数点以下を切捨て) 端数:150-(78+71)=1 と求めているのですが、一度で簡単に端数を算出することは出来ますか? エクセル、アクセス、(SQLでも)の関数などで一度にもとめられますでしょうか? よろしくお願いいたします。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

多分、このケースであれば端数は 0 か 1しかないと思いますので 先の表の場合 =(MOD(B3*B2,B1+B2)>0)*1 で良いかと思います。

a123b123
質問者

お礼

回答ありがとうございます。 今回のケースなら、回答いただいた内容で対応できそうですが、 もし、商品が3つあったら、端数が「0」や「1」以外の場合や、 内容が、変動した場合に自動的に端数を求めること。 これらを、簡単に関数で求められるかな~と思ったのですが、 難しそうなので(ない?)、式を組み立てていくことにします。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

計算はできているので、そのまま長い式にしてしまえば良いだけでは? 一般化して、 商品Aをa、商品Bをb、値引きをcとすれば…  端数 = c-( INT(c*a/(a+b)) + INT(c*b/(a+b)) ) という感じ。 ( INT( )は切り下げの数学関数と仮定しています。) 例えばエクセルの場合、 商品Aの値段がA1セルに、商品Bの値段がA2セルに、値引きがA3セルにあるとすれば、  =A3-ROUNDDOWN(A3*A1/(A1+A2),0)-ROUNDDOWN(A3*A2/(A1+A2),0)

a123b123
質問者

補足

回答ありがとうございます。 確かに、そのまま計算式をつなげれば求められるのですが、 一発で端数を求めるような関数があればと思いまして。。。 言葉が足りなくて、すいません。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

そのまま、計算されたことを式にすればよいと思います。 エクセルの事例で   A  B 1商品A 1000 2商品B 900 3値引き 150 端数は =B3-INT(B3*B1/(B1+B2))-INT(B3*B2/(B1+B2)) となりますが。

a123b123
質問者

補足

回答ありがとうございます。 確かに、そのまま計算した内容で式にすれば求められるのですが、 端数を求めるような関数があればと思いまして。。。 言葉が足りなくて、すいません。

関連するQ&A