- 締切済み
按分後の端数を求めたい
商品値引額の按分を計算→端数(余り)を一度で求めたいです。 私が今行っている方法だと、値引額を按分し商品別値引額を算出 その後、按分しきれない(端数)を算出します。 例) 商品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でも)の関数などで一度にもとめられますでしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
多分、このケースであれば端数は 0 か 1しかないと思いますので 先の表の場合 =(MOD(B3*B2,B1+B2)>0)*1 で良いかと思います。
- fujillin
- ベストアンサー率61% (1594/2576)
計算はできているので、そのまま長い式にしてしまえば良いだけでは? 一般化して、 商品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)
補足
回答ありがとうございます。 確かに、そのまま計算式をつなげれば求められるのですが、 一発で端数を求めるような関数があればと思いまして。。。 言葉が足りなくて、すいません。
- hallo-2007
- ベストアンサー率41% (888/2115)
そのまま、計算されたことを式にすればよいと思います。 エクセルの事例で A B 1商品A 1000 2商品B 900 3値引き 150 端数は =B3-INT(B3*B1/(B1+B2))-INT(B3*B2/(B1+B2)) となりますが。
補足
回答ありがとうございます。 確かに、そのまま計算した内容で式にすれば求められるのですが、 端数を求めるような関数があればと思いまして。。。 言葉が足りなくて、すいません。
お礼
回答ありがとうございます。 今回のケースなら、回答いただいた内容で対応できそうですが、 もし、商品が3つあったら、端数が「0」や「1」以外の場合や、 内容が、変動した場合に自動的に端数を求めること。 これらを、簡単に関数で求められるかな~と思ったのですが、 難しそうなので(ない?)、式を組み立てていくことにします。