- ベストアンサー
数式でrounddownを使いたい場所と、マイナスの計算のズレについて
- 数式でrounddownを使いたい場所を教えてください。
- マイナスの計算のズレが発生する場合、そのまま使う方法はあるのでしょうか。
- 質問者は消費税などの少数以下の数字を切り捨てるためにrounddownを使いたいが、正しい位置に入れる方法がわからない。また、マイナスの計算のズレについても相談している。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>消費税 桁分けする前の、生の計算結果を丸めます。 ROUNDDOWN(SUMPRODUCT( )*0.08,0) のように。 >マイナスの数字 金額計算にマイナスの計算が現れるって事は考えにくいですが、マイナスを先頭桁にじゃなく数字に並べて表示したいなら X26: =MID(RIGHT(REPT(" ",9)&TEXT(INT(SUMPRODUCT($Q15:$Q25,$T15:$T25)*8%),"#"),9),COLUMN(A1),1) 右にコピー などのように出来ます。
その他の回答 (4)
- bunjii
- ベストアンサー率43% (3589/8249)
>この場合だとどこに入れればよいのでしょうか? 提示の数式が正しいことを前提に説明します。 SUMPRODUCT($Q15:$Q25,$T15:$T25) が本体価格の合計金額なので消費税はこれに8%を乗じた値です。 従って、 ROUNDDOWN(SUMPRODUCT($Q15:$Q25,$T15:$T25)*0.08,0) が消費税(円未満を切り捨て)になります。 これを9桁の文字列に変換してX26からAF26へ1桁ずつ配置する数式にすれば良いのですからX26セルは次の式になります。 =MID(TEXT(ROUNDDOWN(SUMPRODUCT($Q15:$Q25,$T15:$T25)に*0.08,0),"?????????????????????????"),COLUMN(Y25),1) 検証を行っていませんので確かめた結果に不具合がありましたら補足してください。 >この数式の場合だとマイナスの計算はズレるのは仕方ないのでしょうか? 本体価格の合計が正数(プラス)の場合は明細の中に負数が含まれても誤差は起りません。 本体価格の合計が負数(マイナス)になる場合は消費税で1円の誤差が出るときもあるでしょう。 負数であるか否かはSIGN関数でチェックできます。 誤差を無くす方法は合計値をABS関数で括り、それに8%を乗じて更にSIGN関数の返り値を乗じて結果を引き出せば良いでしょう。
お礼
ご回答ありがとうございます。 とても分かりやすい丁寧なご説明で勉強になりました。 そういう意味なのだということが理解できてよかったです。 シートのほうも教えて頂いた通り数式を入力して計算が出来ました。 本当にありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! お望みの方法とは異なり、VBAになりますが一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りデータ変更させてみてください。 Private Sub Worksheet_Calculate() 'この行から Dim i As Long, j As Long, k As Long, str As String, Syouhi, myVal For i = 15 To 25 For j = 24 To 32 If Cells(i, j) <> "" Then str = str & Cells(i, j) End If Next j If str <> "" Then myVal = myVal + Val(str) str = "" End If Next i Syouhi = WorksheetFunction.RoundDown(myVal * 0.08, 0) Range("X26:AF27").ClearContents For k = 1 To Len(Syouhi) Cells(26, 32 - (Len(Syouhi) - k)) = Mid(Syouhi, k, 1) Next k myVal = myVal + Syouhi For k = 1 To Len(myVal) Cells(27, 32 - (Len(myVal) - k)) = Mid(myVal, k, 1) Next k End Sub 'この行まで ※ X26~AF27セルに数式が入っている場合は、数式が消えてしまいます。 新しいSheetで試してみてください。m(_ _)m
お礼
ご回答ありがとうございます。 このようなコードを入力する方法とかもあるのですね。 全然知らない方法でとても勉強になります。 とても参考になりました。 本当にありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
>できない マイナスも対応可能な数式で回答済みなので、そちらをご利用ください。
お礼
失礼しました。 勘違いをしていたみたいで、ご迷惑おかけしました。 教えて頂いた数式を入力したら両方ともにキレイに計算できました。 自分の足りなさのせいで余計な手間をかけさせてしまって、ごめんなさい。 とても助かりました、本当にありがとうございました。
お礼
教えて頂いたのに頭が悪くて本当にごめんなさい。 教えて頂いた数式を入れようと試みたのですが、入れ方が全然間違っているみたいで こんな入れ方をしてしまったりしています。 =MID(TEXT(rounddown(SUMPRODUCT(($Q15:$Q25,$T15:$T25))*0.08,0),"?????????????????????????"),COLUMN(Y25),1) まったく間違っていると思いますがどこが入れ間違っているのでしょうか? 申し訳ありませんが、宜しくお願いします。