ナイルさまイベント
ナイルさまイベント

【エクセルTips】数値を丸めたいときの関数まとめ(四捨五入/切り捨て/切り上げ/整数部分を取り出す関数)

ゆりえ

こんにちは。経営企画室のゆりえです。会社全体のさまざまな数字を管理しています。これまでのLIGブログでは、エクセルやGoogleスプレッドシートの活用法に関する記事を書きました。

今回は、エクセルやGoogleスプレッドシートで使える、数値を丸めたいときに使える関数を5つまとめました。

※記事内の図はGoogleスプレッドシートで作成しています。

数値を丸める系関数まとめ

 

四捨五入するROUND関数

関数
=ROUND(数値, 桁数)
※Googleスプレッドシートでは「,桁数」を省略可能。

指定した数値を小数点以下の「桁数」に応じて四捨五入する関数です。

「数値」や「桁数」の部分は、固定値だけではなくセルを指定したり、数式を当てはめることができます。

たとえば、153.45という数値をROUND関数を使って四捨五入します。

  • 小数第一位(4)で四捨五入する : 桁数=0 → =ROUND(153.45, 0) → 153
  • 小数第二位(5)で四捨五入する : 桁数=1 → =ROUND(153.45, 1) → 153.5

また、この関数は小数だけではなく、整数部分も四捨五入することができます。そのときは、桁数をマイナスで指定します。

  • 一の位(3)で四捨五入する : 桁数=-1 → =ROUND(153.45, -1) → 150
  • 十の位(5)で四捨五入する :  桁数=-2 → =ROUND(153.45, -2) → 200

「桁数」が空欄の場合は桁数=0と同じ扱いとなり、小数第一位で四捨五入がされます。ただし、エクセルの場合は数値のあとの「,(カンマ)」がないとエラーになってしまうので、気をつけましょう。Googleスプレッドシートの場合は、「,(カンマ)」を省略した場合も桁数=0と同じ計算結果となります。

数値を切り上げるROUNDUP関数

関数
=ROUNDUP(数値, 桁数)
※Googleスプレッドシートでは「,桁数」を省略可能。

こちらも使い方はROUND関数とほぼ同じで、指定した「数値」を措定した「桁数」に応じて切り上げる関数です。

例によって153.45を切り上げます。整数部分を切り上げる場合も同様に、桁数をマイナスで指定します。

  • 小数第一位(4)で切り上げる :  桁数=0 → =ROUNDUP(153.45, 0) → 154
  • 小数第二位(5)で切り上げる :  桁数=1 → =ROUNDUP(153.45, 1) → 153.5
  • 一の位(3)で切り上げる :  桁数=-1 → =ROUNDUP(153.45, -1) → 160
  • 十の位(5)で切り上げる :  桁数=-2 → =ROUNDUP(153.45, -2) → 200

ROUNDUP関数を使う上で、指定した桁数の値が「0」の場合に気をつけることがあります。通常0に対しては切り上げは起きませんが、措定した桁よりも下の桁に値が存在する場合は、切り上げが発生し、結果が変わります。

  • 指定した桁以下も0の場合 : 数値=153.0 → =ROUNDUP(153.0, 0) → 153
  • 指定した桁以下が0以上の場合 : 数値=153.01 → =ROUNDUP(153.01, 0) → 154

つまり、指定した桁だけで計算されるのではなく、その桁以下の値も含めて切り上げが発生するということになります。

数値を切り捨てるROUNDDOWN関数

関数
=ROUNDDOWN(数値, 桁数)
※Googleスプレッドシートでは「,桁数」を省略可能。

こちらも使い方はROUND関数、ROUNDUP関数とほぼ同じで、ROUNDUPで切り上げたところを、ROUNDDOWNでは切り捨てます。

例によります。整数部分を切り捨てる場合も同様に、桁数をマイナスで指定します。

  • 小数第一位(4)で切り捨てる : 桁数=0 → =ROUNDDOWN(153.45, 0) → 153
  • 小数第二位(5)で切り捨てる : 桁数=1 → =ROUNDDOWN(153.45, 1) → 153.4
  • 一の位(3)で切り捨てる : 桁数=-1 → =ROUNDDOWN(153.45, -1) → 150
  • 十の位(5)で切り捨てる : 桁数=-2 → =ROUNDDOWN(153.45, -2) → 100

数値を切り捨てるTRUNC関数

関数
=TRUNC(数値, 桁数)
※「,桁数」を省略可能。

指定した数値を小数点以下の「桁数」に応じて四捨五入する関数で、前述のROUNDDOWN関数とほぼ同じ動きをする関数です。ROUNDDOWN関数との違いは、この関数のみエクセルでも「,桁数」の引数を省略することが可能な点です。その場合、スプレッドシートと同様に「桁数=0」の計算結果が返ってきます。

  • 小数第一位(4)で切り捨てる : 桁数=0 → =TRUNC(153.45, 0) → 153
  • 小数第二位(5)で切り捨てる : 桁数=1 → =TRUNC(153.45, 1) → 153.4
  • 一の位(3)で切り捨てる : 桁数=-1 → =TRUNC(153.45, -1) → 150
  • 十の位(5)で切り捨てる : 桁数=-2 → =TRUNC(153.45, -2) → 100

整数部分を取り出すINT関数

関数
=INT(数値)

指定した数値に一番近く、その数値を超えない整数を取り出せる関数です。整数部分を取り出すというとわかりやすいと思います。引数は「数値」のみで「桁数」の指定はありません。

ROUNDDOWN関数と似ていますね。ただしINT関数では「その数値を超えない整数」が返ってくるため、数値が負の数(<0)の場合はROUNDDOWN関数とは結果が異なるため注意が必要です。

  • 数値が正の場合 : 数値=153.45 → =INT(153.45) → 153
  • 数値が負の場合 : 数値=-153.45 → =INT(-153.45) → -154

5つの関数の比較

求める数値の正負による結果が少しわかりづらいのでまとめました。

この図によると、ROUNDDOWNとTRUNCはまったく同じ結果です。また、INT関数は、正の数の場合はROUNDDOWN関数と同じく切り捨てをしていて、負の数に対してはROUNDUP関数と同じく切り上げをしていることがわかります。

求めたい結果によっては、ROUNDDOWNよりもINTが適する場合もありそうです。また、異なる丸め方の関数が存在することで、たとえばIF文などで「正なら~、負なら~」といった場合分けをする必要がなくなりますね。それは素敵。必要に応じて使い分けたいと思います。

さいごに

ROUND系の関数は日々の業務でかなり使っています。この3つは名前から意味がわかりやすくて使いやすいです。

ありがとうございました。