- 締切済み
エクセルにて、計算式を教えて下さい。
税込単価を計算するのですが・・・ 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くらいまで様々です。 計算対象が数十万レコードはあるので、関数で一括して計算できるような方法はありませんか。
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- a987654
- ベストアンサー率26% (112/415)
なにを難しいことを言っているのか分かりませんが >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)
ん~っと、 税込単価について、小数点以下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)
>税込単価の小数点以下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 ------------------------------ 一応、画像を添付しますが、なぜか私の環境では表示されません 他の方は見えていますか?
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
- Sinogi
- ベストアンサー率27% (72/260)
>単純に単価とLOTがそれだけなら良いのですが >LOTは1~100,000(整数のみ) >単価は0.01~1,000,000 で、LOTと単価はどんな関係なのですか? #3補足が全てでなく、LOTと単価の関係が明示されていなければ、回答者にはLOTから単価を導くことは不可能です。
- Sinogi
- ベストアンサー率27% (72/260)
#3補足なら LOTがA列にあるとして 単価の列に =IF(MOD(A1,10)=0,2.1,3) でいかがですか?
- ASIMOV
- ベストアンサー率41% (982/2351)
- Sinogi
- ベストアンサー率27% (72/260)
関数が云々の以前に 提示の例では LOT=101ならば 税込単価@3 ¥303 LOT=110ならば 税込単価@2.1 ¥231 で大きな逆転が起きます。 この例で本当に良いのですか? また、これでよいなら LOT=100~120の例を全て提示してください。
補足
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)
四捨五入、切り捨て、切り上げ これらを行う関数を調べましょう 切り上げなら ROUNDUP関数 =ROUNDUP(123.45,0) …って、質問の例では整数になっていない結果がありますけど、 整数にしたいという質問なのに 【 必ず 】 整数にする必要はないんですか? ちなみに Excel2007で処理してください 2003ではレコード数がオーバーします
補足
LOT*単価*1.05 が常に整数になるように、単価*1.05の切り上げ桁数を変える必要があります。 ROUNDやIFやVLOOKUP等の関数の使い方は理解しています。 LOT*単価*1.05 が常に整数になるようにします。税込単価は小数を含んでも問題ありません。
- hana-hana3
- ベストアンサー率31% (4940/15541)
>計算対象が数十万レコードはあるので、 エクセルの範疇ではありません。
補足
ごもっともです。 本当はアクセスで行いたいのですが、事情がありエクセルで行う必要があります。
補足
単純に単価とLOTがそれだけなら良いのですが LOTは1~100,000(整数のみ) 単価は0.01~1,000,000 の間で様々な値があるため、手作業で行うにはちょっと手間がかかりすぎると思います。 出来れば一括で行えると助かります。 IFやMODやROUNDUPやLENB等を色々使ってやってみたのですが、どれも上手くいかず参っています。