ACCESS 関数で切り上げする方法

関数で切り上げする方法

ACCESSで数値を扱う場合、小数点以下の値の扱いには注意が必要です。
切り上げ処理をする際、ExcelであればROUNDUP関数を利用できますが、ACCESSにはこの関数がありません。

今回は、関数で切り上げする方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。

小数点以下を切り上げする関数処理

ACCESSで小数点以下を切り上げする場合は以下のように記述します。
クエリの場合とVBAの場合で若干異なるので、それぞれ示しますね。

クエリの場合

VBAの場合

VBAの方はFunctionで作成しているので、kiriageに切り上げした値が格納されます。
以下、詳細に説明します。

ACCESSでの小数点以下切り上げ処理の考え方

ACCESSで小数点以下の切り上げ、切り捨てをする際に利用できる関数は、Int関数です。
Int関数は小数点以下を切り捨てる関数で、以下の構文で利用します。

引数に元の値を指定するだけのシンプルな関数です。

でも単純にIntを使っただけでは切り捨てですよね。
ここから切り上げ処理にします。Intで切り捨てた値に1を足すことで切り上げした値を作ることができます。
つまり

で切り上げるということです。

しかし、この方法には欠点があります。
元の値が整数だった場合はInt関数を使っても数値が変わらないので、結果的に1つ大きな数になってしまうという点です。

これを防ぐために条件分岐させ、元の値が整数だった場合はその値のまま、元の値が整数でなかった場合はInt関数で小数点以下を切り捨てたうえで+1する、という処理にしているわけです。

この条件分岐の記述方法がクエリとVBAで異なるため、最初に2つのパターンをご紹介しました。

クエリでの切り上げ

クエリでの切り上げについて詳しく説明します。
サンプルテーブルとして、以下を準備しました。

この、元の値を切り上げするクエリを作成します。
クエリをデザインビューで作成し、2列目に「切り上げ」というフィールドを作成します。

切り上げフィールドに入力する内容は以下の通りです。

IIf関数を使って、Int関数で切り捨てた値と元の値を比較して、同じだった場合は整数、異なる場合は小数点以下の値があると判定しています。
その後、整数であれば元の値のまま、小数点以下の値があればInt関数で切り上げた値に+1して切り上げ処理を行っています。

データシートビューで結果を見てみましょう。

このように、正しく切り上げ処理がされていることがわかります。

VBAでの切り上げ

次に、VBAでの切り上げ処理です。
こちらは以下のFunctionプロシージャを作成しました。

引数xに値を入れて実行すると、kiriageに切り上げ後の値が返されるプロシージャです。
こちらも処理の考え方は同じで、If分を使って、Int(x)とxが同じか否かを判定して、元の値(x)が整数か否かを判定しています。

整数であればkiriageにはxをそのまま代入し、小数点以下の値があればInt関数で切り上げた値に+1したものをkiriageに代入しています。
イミディエイトウィンドウで実行して結果を見てみましょう。

このように、xの値に応じて正しく切り上げ処理が行われています。

以上、関数で切り上げする方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。