Accessで四捨五入する方法をお探しですね。
広告
Accessの端数処理でハマらないために!Round・Int・Fixの違いを分かりやすく解説
Accessでデータベースを作っていて、「あれ?計算結果がおかしいぞ?」となった経験はありませんか?特に四捨五入や切り捨てなどの端数処理は、Excelと同じ感覚で使うと思わぬ落とし穴にハマってしまいます。
お金の計算で1円でもズレたら大変ですよね。
この記事では、Accessの端数処理関数について、初心者の方にも分かりやすく説明していきます。
AccessのRound関数、実は普通の四捨五入じゃないんです
「四捨五入したいな」と思ったとき、まず思いつくのがRound関数ですよね。
でも実は、AccessのRound関数は私たちが学校で習った普通の四捨五入とは違う動きをするんです。
これを「銀行丸め」とか「偶数丸め」って呼びます。
どういうことかというと、ちょうど真ん中の「0.5」のとき、偶数になる方に丸められるんです。
例を見てみましょう。
– 2.5をRound関数で丸めると→「2」(普通は3になると思いますよね)
– 3.5をRound関数で丸めると→「4」(こっちは4になる)
0.5のときだけこんな特別な動きをするので、注意が必要です。
なぜこんな仕様になっているかというと、大量のデータを扱うとき、いつも0.5を切り上げていると合計がどんどん大きくなっちゃうからなんです。
統計的には正確なんですが、日本の普通の商売や経理の仕事では、みんなが知ってる普通の四捨五入を使うことがほとんどです。
だから、Accessで計算するときは「Round関数は普通の四捨五入じゃない」ってことを覚えておいてください。
Int関数とFix関数、何が違うの?
小数点以下を切り捨てたいとき、Accessには「Int関数」と「Fix関数」の2つがあります。
プラスの数だけ扱うなら、どっちを使っても結果は同じです。
例えば3.8なら、どちらも「3」になります。
でも、マイナスの数を扱うときは話が変わってきます。
**Int関数の場合:**
– -3.8をInt関数で処理すると→「-4」
– 元の数より小さい整数になる(数直線で左に進む感じ)
**Fix関数の場合:**
– -3.8をFix関数で処理すると→「-3」
– 単純に小数点以下を取っちゃう(ゼロに近づく感じ)
マイナスの数を扱う可能性があるシステムでは、「より小さくしたいのか」「ゼロに近づけたいのか」をちゃんと考えて、どっちの関数を使うか決める必要があります。
普通の四捨五入をAccessでやる方法
「じゃあAccessで普通の四捨五入するにはどうすればいいの?」って思いますよね。
実は、ちょっとした工夫で実現できます。
一番シンプルなのは、**「0.5を足してからInt関数で切り捨てる」**という方法です。
どういう仕組みかというと:
– 3.4に0.5を足すと→3.9→Int関数で切り捨てて「3」
– 3.5に0.5を足すと→4.0→Int関数で切り捨てて「4」
見事に普通の四捨五入になりましたね!ただし、これはプラスの数の場合です。
マイナスの数も扱うなら、もうちょっと工夫が必要になります。
もっとスマートなやり方としては、VBAで自分専用の四捨五入関数を作っちゃう方法もあります。
一度作っておけば、いろんなところで使えて便利ですよ。
Accessには切り上げ関数がない!でも大丈夫
Excelには「RoundUp関数」っていう切り上げ専用の関数がありますが、実はAccessには標準で用意されていません。
消費税の計算とかで切り上げが必要なときは、自分で工夫する必要があります。
よく使われるのは、**「-Int(-数値)」**というテクニックです。
例えば3.1を切り上げたい場合:
1. まずマイナスをつけて-3.1にする
2. Int関数を使うと-4になる(より小さい整数)
3. もう一度マイナスをつけて4に戻す
最初は「なんか変なことしてるな」って思うかもしれませんが、これはAccess使いの間では昔からよく使われている定番の方法なんです。
他にも、0.9とか0.99を足してから切り捨てるという方法もあります。
扱うデータの種類に合わせて、使いやすい方法を選んでくださいね。
まとめ
端数処理は地味だけど、すごく大事な部分です。
この記事が、Accessでの計算ミスを防ぐお役に立てれば嬉しいです!
広告
