Access。切り上げ。ExcelではROUNDUP関数がありますがAccessにはありません。
<Int関数>
例えば、小数点第1位までで切り上げたいという時、ExcelではROUNDUP関数をつかいます。
Accessならどうしたらいいのでしょうか。
ROUNDUP関数をつかえば…と思うかもしれませんが、Accessには、切り上げをする関数は用意されていません。
つまり、ROUNDUP関数は ない というわけです。
Round関数は四捨五入の関数なので、コントロールができないので、Int関数をつかいます。
ただ、Int関数は整数化しますが、整数化するために、切り捨てる関数です。
そのため、Int関数で切り捨てる前に、切り上げておかないといけません。
クエリで演算フィールドをつくるのですが、次のような演算式を用意します。
小数第2位: Int([数値]*(10^2)+0.999999)/(10^2)
小数第1位: Int([数値]*(10^1)+0.999999)/(10^1)
整数: Int([数値]*(10^0)+0.999999)/(10^0)
一の位: Int([数値]*(10^-1)+0.999999)/(10^-1)
この演算フィールドの演算式の特徴は、Int関数を実行する前に、0.999999をわざと足しておくことがポイントです。
0.9だと、「押し上げ量が足りない」ケースが必ず出るからです。
逆に、0.999999999とかにすると、数値型(Double)を越えてしまう恐れがあります。
なので、やみくもに桁数を多くしてもダメです。
Accessで切り上げを行う場合には、「0.999999」が決まった値 として認知されています。
可用性 99.9999%を “six nines” と呼ぶのとなんか似ていますが、9が6個です。
では、クエリをつくって確認してみます。
ExcelのようにROUNDUP関数があれば、いいのですが、Accessにはありません。
切り上げを行いたい場合には、Int関数をつかって演算式を作る必要があります。


























