dポイントプレゼントキャンペーン実施中!

税込単価を計算するのですが・・・
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くらいまで様々です。
計算対象が数十万レコードはあるので、関数で一括して計算できるような方法はありませんか。

A 回答 (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の有効桁)
    • good
    • 0

ん~っと、


税込単価について、小数点以下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 ← 参考にならん^^;;)
「エクセルにて、計算式を教えて下さい。」の回答画像9
    • good
    • 0

>税込単価の小数点以下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
------------------------------
一応、画像を添付しますが、なぜか私の環境では表示されません
他の方は見えていますか?
「エクセルにて、計算式を教えて下さい。」の回答画像8
    • good
    • 0

何でこのような計算が存在するんだろうと疑問には思いますが


言葉通りに数式に表します
>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))
添付図参照
「エクセルにて、計算式を教えて下さい。」の回答画像7
    • good
    • 0

>単純に単価とLOTがそれだけなら良いのですが


>LOTは1~100,000(整数のみ)
>単価は0.01~1,000,000

で、LOTと単価はどんな関係なのですか?
#3補足が全てでなく、LOTと単価の関係が明示されていなければ、回答者にはLOTから単価を導くことは不可能です。
    • good
    • 0

#3補足なら



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

この回答への補足

単純に単価とLOTがそれだけなら良いのですが
LOTは1~100,000(整数のみ)
単価は0.01~1,000,000
の間で様々な値があるため、手作業で行うにはちょっと手間がかかりすぎると思います。
出来れば一括で行えると助かります。

IFやMODやROUNDUPやLENB等を色々使ってやってみたのですが、どれも上手くいかず参っています。

補足日時:2009/08/11 21:56
    • good
    • 0

>税込単価は小数を含んでも問題ありません



小数点以下何桁まででしょうか?

EXCEL上は
A2 =数量
B1 =単価
B2 =ROUNDUP(A2*B$1*1.05,0)/A2
で、出来ますが、少数点以下9桁になります
「エクセルにて、計算式を教えて下さい。」の回答画像4

この回答への補足

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

補足日時:2009/08/11 17:41
    • good
    • 0

関数が云々の以前に


提示の例では
LOT=101ならば 税込単価@3   ¥303
LOT=110ならば 税込単価@2.1  ¥231
で大きな逆転が起きます。

この例で本当に良いのですか?

また、これでよいなら
LOT=100~120の例を全て提示してください。

この回答への補足

LOT税込単価金額
1002.1210
1013303
1023306
1033309
1043312
1053315
1063318
1073321
1083324
1093327
1102.1231
1113333
1123336
1133339
1143342
1153345
1163348
1173351
1183354
1193357
1202.1252

エクセルから単純にコピーしたのでずれているかもしれませんが、こうなります。
一部で逆転する事は承知しております。

補足日時:2009/08/11 17:28
    • good
    • 0

四捨五入、切り捨て、切り上げ


これらを行う関数を調べましょう

切り上げなら ROUNDUP関数
 =ROUNDUP(123.45,0)

…って、質問の例では整数になっていない結果がありますけど、
整数にしたいという質問なのに 【 必ず 】 整数にする必要はないんですか?

ちなみに Excel2007で処理してください
2003ではレコード数がオーバーします

この回答への補足

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

LOT*単価*1.05 が常に整数になるようにします。税込単価は小数を含んでも問題ありません。

補足日時:2009/08/11 16:40
    • good
    • 0

>計算対象が数十万レコードはあるので、



エクセルの範疇ではありません。

この回答への補足

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

補足日時:2009/08/11 16:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!