ACCESSで四捨五入する方法
ACCESSで数値を計算する際に、四捨五入をしたい場合は多いでしょう。
ExcelであればROUNDUPやROUNDDOWN関数を利用することが多いですが、ACCESSでは少し異なった処理が必要です。
今回は、ACCESSで四捨五入する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
ACCESSにはRoundUp、RoundDown関数がない
Excelの関数を使用している方であれば、四捨五入と聞けばRoundUp、RoundDown関数を思い浮かべるでしょう。
これらの関数を使用すれば簡単に四捨五入が可能です。
しかし、ACCESSにはこれらの関数がありません。
注意しなければいけないのはRound関数です。
こちらは一見すると四捨五入できるように思えるのですが、通常の四捨五入とは少し処理が異なりますので、そのまま使えないことがほとんどです。
例えば、以下のテーブルがあります。
この数値を、Round関数を使って変換してみましょう。
以下のクエリを作成しました。
先ほどのテーブルを基にして、「数値」フィールドを使って3列目に計算式を入れてあります。
Round: Round([数値])
では、結果を見てみましょう。
一見すると四捨五入できているように見えますが、ちょっと待ってください。
4.5を変換した部分に注目すると結果が「4」になっています。
一般的な四捨五入であれば「5」にならないといけないですよね。
では、小数点以下が5だと小さい方に丸めているのかというと、そうでもありません。
5.5はきちんと6になっていますね。
これはRound関数が、小数点以下の数値が5の場合、偶数になるように丸めるという性質を持っているためです。
これでは使えませんね。
このRound関数の性質は非常に気づきにくいので、通常処理で四捨五入をさせたい場合に間違ってRound関数を使用しないように注意してください。
Int関数
ACCESSでの四捨五入にはInt関数を利用します。
Int関数とは、数値の整数部分を返す関数です。
構文は以下の通り。
Int (Number)
Numberの部分に数値を入れるだけの簡単な関数です。
例えば、Int (99.5) とすれば戻りの値は99です。
関数 | 戻り値 |
Int (99.1) | 99 |
Int (99.5) | 99 |
要は小数点以下の切り捨ての関数ですね。
これと似た関数にFix関数があります。
Fix関数も小数点以下を切り捨てる関数ですが、Int関数との違いは負の数の場合の処理です。
関数 | 戻り値 |
Int (-99.5) | -100 |
Int (-99.5) | -99 |
Int関数では絶対値が大きくなる値(負の数としては小さい値)を返すのに対して、Fix関数は絶対値が小さくなる値(負の数としては大きな値)を返します。
ACCESSで四捨五入する方法
それではいよいよ、ACCESSで四捨五入する方法をご説明しましょう。
先ほどと同じようにデザインビューでクエリを作成します。
今回は3列目にInt関数を使って以下のように記述しました。
Int: Int ( [数値] + 0.5 )
Int関数は整数部分のみに切り捨てする関数ですので、その前に0.5を足すことで結果的に四捨五入となるようにしています。
それでは結果を見てみましょう。
今度はちゃんと四捨五入ができていますね。
このように、ACCESSで四捨五入をする際はInt関数を使用し、数値に0.5を足す方法が最も使いやすいです。
以上、ACCESSで四捨五入する方法についてご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。