【Excel】知っておきたい端数処理(四捨五入、五捨五超入、偶数への丸め編)

PC

今回は、Excelにおける四捨五入・五捨五超入・偶数への丸めについてです。Excelには、ROUND関数という四捨五入の関数があります。しかし、五捨五超入・偶数への丸めの関数はExcelにはないので、代用の方法もご紹介します。Excel以外でも、知っているとお得ですので、興味のある方は是非ご覧ください。

以前に、切り捨て・切り上げについても説明しています。もしよければ、ご覧ください。

四捨五入

四捨五入は、端数が0.5未満のとき切り捨て、0.5以上のとき切り上げをする端数処理(丸め)を言います。

ROUND関数

ROUND関数は、指定された数値に対して、指定された桁数の1つ下の位を四捨五入して、指定された桁数まで求める関数です。

ROUND関数の書式

ROUND(数値,桁数)

数値必須四捨五入する数値を指定します。
桁数省略可能四捨五入を行った後の桁数を指定します。省略した場合は0となります。
例)1を指定した場合、小数第二位を四捨五入し、小数第一位まで求める
例)0を指定した場合、小数第一位を四捨五入し、一の位まで求める
例)-1を指定した場合、一の位を四捨五入し、十の位まで求める
表1:ROUND関数の引数

五捨五超入

五捨五超入は、端数が0.5以下のときは切り捨て、0.5より大きいときは切り上げをする端数処理(丸め)を言います。

この五捨五超入は、薬剤料の計算、社会保険料の計算(一部)などで使用されます。

五捨五超入の関数

五捨五超入の関数は、Excelにはないので、次のようにします。

ROUNDUP(数値*10^桁数 – 0.5, 0)/10^桁数   ※数値>0

五捨五超入の関数の案として、いろいろな方法がありますが、一般的な用途の場合、桁数を0にすると思うので、数値から0.5を引いて、切り上げをすれば五捨五超入ができます。

ROUNDUP(数値 – 0.5, 0)   ※数値>0

tayuyu
tayuyu

これが一番簡単な方法だと思うよ。

偶数への丸め

偶数への丸めは、端数が0.5より小さい場合は切り捨て、0.5より大きい場合は切り上げ、0.5のときは切り捨てまたは切り上げをしたときに、結果が偶数となる方へ丸める端数処理(丸め)のことです。

偶数への丸めの関数

偶数への丸めの関数は、Excelにはないので、次のようにします。

=IF(AND(ISEVEN(数値*10^桁数),MOD(数値*10^桁数,1)<=0.5),ROUNDDOWN(数値,桁数),ROUND(数値,桁数))

一般的な用途の場合、桁数を0にすると思うので、次のように簡略できます。

=IF(AND(ISEVEN(数値),MOD(数値,1)<=0.5),ROUNDDOWN(数値,桁数),ROUND(数値,桁数))

tayuyu
tayuyu

「数値の整数部分がTRUE」かつ「小数部分が0.5以下」のときに、ROUNDDOWN関数を使ってるよ。

ExcelVBAのROUND関数は、偶数への丸めの関数だから、VBAが使える人は、そっちを使った方が確実かな~

正確な動作を保証するものではありません。

ROUND関数の注意点

いろいろな環境(Excel, Access, Javaなど)にROUNDという関数がありますが、このROUND関数は、環境によって、四捨五入または偶数への丸めのどちらかになっていることが多いです。

例えば、ExcelのROUND関数は四捨五入する関数、ExcelVBA、AccessのROUND関数は偶数への丸めをする関数といった感じです。なので、環境によってどのような動作となるか確認をする必要があります。

ROUND関数=四捨五入の関数と思われている方が多いと思います。繰り返しになりますが、環境によって、ROUND関数≠四捨五入の関数である可能性もあるということだけ覚えておきましょう。

コメント

タイトルとURLをコピーしました