• 締切済み

エクセルにて、計算式を教えて下さい。

税込単価を計算するのですが・・・ LOT×単価×1.05 が常に整数になるように、税込単価を計算し切り上げを行う必要があります。 単価@2の場合 LOT=1ならば  税込単価@3 LOT=10ならば  税込単価@2.1 LOT=11ならば  税込単価@3 LOT=100ならば 税込単価@2.1 LOT=101ならば 税込単価@3 LOT=110ならば 税込単価@2.1  といった具合です。 LOTは1~100,000(整数のみ)で、単価は0.01~1,000,000くらいまで様々です。 計算対象が数十万レコードはあるので、関数で一括して計算できるような方法はありませんか。

みんなの回答

  • a987654
  • ベストアンサー率26% (112/415)
回答No.10

なにを難しいことを言っているのか分かりませんが >LOT×単価×1.05 が常に整数になるように、 >税込単価を計算し切り上げ これを素直の読み取ると税込み単価を切り上げるとは 書いていません。 すなわち”LOT×単価×1.05 が常に整数になるように切り上げる” という日本語にとれます。(誤解を生じないような記載を願う。) NO2の補足では >LOT*単価*1.05 が常に整数になるようにします。 >税込単価は小数を含んでも問題ありません。 と書いてあります。 然しながら、NO3の補足では、質問者自ら税込み単価を切り上げて おられるので(このブレは説明願いたし)、税込み単価を切り上げが 本題かとは思いますが 日本語文章の通りの読みでは下記となります。 単価×1.05は税込み単価のことであり、 LOT×税込単価を整数に切り上げる LOT×税込単価=ROUNDUP(LOT×単価×1.05) 更に税込み単価に戻すのであるから 税込み単価=ROUNDUP(LOT×単価×1.05)/LOT (EXCEL前提であるから、有効桁数はEXCELの有効桁)

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.9

ん~っと、 税込単価について、小数点以下2桁までの端数が許されるのであれば、 例えば、  税抜単価 : 2.00 ⇒ 切上前税込単価 : 2.10  LOT数 : 104 のとき、  税込単価 : 2.25 としても良いように思うのですが…。 --------------------------------------------- もし、そういう趣旨のご質問であれば、 B1セルに税抜単価、A4セルにLOT数があるとして、  =CEILING($B$1*1.05,100/(GCD(MOD(A4,100),100)*100)) でいかが? 以上ご参考まで。 --------------------------------------------- と、ココまで書いたところで#8さまのご回答が…。 仕様としては#8さまのご回答と同趣旨です。 (「私の数式があってれば」ですが) #8さまへ  私の環境ではバッチリ表示されております。  (WinXP/Opera9.64 ← 参考にならん^^;;)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.8

>税込単価の小数点以下2桁までです 数量×単価が整数になる数で小数点以下2桁までの「数」 という事でやってみました A列は「数量」で、A2 =1 で始まりA3以下2~を記入しておきます B1 =2 (当初の単価です) B2 =ROUNDUP(ROUNDUP(A2*B$1*1.05,0)/A2,2) として、下にコピーします CとD列は、下記のマクロを実行すると計算されます 約6万行まで試してみましたが、大丈夫なようです(数分掛ります) ------------------ Sub Tanka()   l = 2   Do Until Cells(l, "A") = ""     a = Cells(l, "B").Value     n = Cells(l, "A").Value     k = a * n     Do While Int(k) < k       a = Application.RoundDown(a + 0.01, 2)       k = a * n     Loop     Cells(l, "C") = a     Cells(l, "D") = k     l = l + 1   Loop End Sub ------------------------------ 一応、画像を添付しますが、なぜか私の環境では表示されません 他の方は見えていますか?

回答No.7

何でこのような計算が存在するんだろうと疑問には思いますが 言葉通りに数式に表します >LOT×単価×1.05 が常に整数になるように、 >税込単価を計算し切り上げを行う必要があります。 もし、LOT×単価×1.05が整数だったら、そのまま1.05倍 違ったら、切り上げて整数にする。 負は考えていません。 =IF(A4*$C$1*1.05=INT(A4*$C$1*1.05),$C$1*1.05,ROUNDUP($C$1*1.05,0)) 添付図参照

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.6

>単純に単価とLOTがそれだけなら良いのですが >LOTは1~100,000(整数のみ) >単価は0.01~1,000,000 で、LOTと単価はどんな関係なのですか? #3補足が全てでなく、LOTと単価の関係が明示されていなければ、回答者にはLOTから単価を導くことは不可能です。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.5

#3補足なら LOTがA列にあるとして 単価の列に =IF(MOD(A1,10)=0,2.1,3) でいかがですか?

magur0
質問者

補足

単純に単価とLOTがそれだけなら良いのですが LOTは1~100,000(整数のみ) 単価は0.01~1,000,000 の間で様々な値があるため、手作業で行うにはちょっと手間がかかりすぎると思います。 出来れば一括で行えると助かります。 IFやMODやROUNDUPやLENB等を色々使ってやってみたのですが、どれも上手くいかず参っています。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.4

>税込単価は小数を含んでも問題ありません 小数点以下何桁まででしょうか? EXCEL上は A2 =数量 B1 =単価 B2 =ROUNDUP(A2*B$1*1.05,0)/A2 で、出来ますが、少数点以下9桁になります

magur0
質問者

補足

税込単価の小数点以下2桁までです。

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.3

関数が云々の以前に 提示の例では LOT=101ならば 税込単価@3   ¥303 LOT=110ならば 税込単価@2.1  ¥231 で大きな逆転が起きます。 この例で本当に良いのですか? また、これでよいなら LOT=100~120の例を全て提示してください。

magur0
質問者

補足

LOT 税込単価 金額 100 2.1 210 101 3 303 102 3 306 103 3 309 104 3 312 105 3 315 106 3 318 107 3 321 108 3 324 109 3 327 110 2.1 231 111 3 333 112 3 336 113 3 339 114 3 342 115 3 345 116 3 348 117 3 351 118 3 354 119 3 357 120 2.1 252 エクセルから単純にコピーしたのでずれているかもしれませんが、こうなります。 一部で逆転する事は承知しております。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

四捨五入、切り捨て、切り上げ これらを行う関数を調べましょう 切り上げなら ROUNDUP関数  =ROUNDUP(123.45,0) …って、質問の例では整数になっていない結果がありますけど、 整数にしたいという質問なのに 【 必ず 】 整数にする必要はないんですか? ちなみに Excel2007で処理してください 2003ではレコード数がオーバーします

magur0
質問者

補足

LOT*単価*1.05 が常に整数になるように、単価*1.05の切り上げ桁数を変える必要があります。 ROUNDやIFやVLOOKUP等の関数の使い方は理解しています。 LOT*単価*1.05 が常に整数になるようにします。税込単価は小数を含んでも問題ありません。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>計算対象が数十万レコードはあるので、 エクセルの範疇ではありません。

magur0
質問者

補足

ごもっともです。 本当はアクセスで行いたいのですが、事情がありエクセルで行う必要があります。

関連するQ&A