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