Excelでさまざまな処理を行う際に「小数点以下を切り捨てたい」というケースもあるだろう。Excelには「切り捨て」を行う関数として、INT、TRUNC、ROWNDDOWNといった関数が用意されている。いずれも「切り捨て」を行うための関数となるが、それぞれ何が違うのだろうか? 各関数の使い方と特徴を紹介していこう。

「切り捨て」が必要な場面は?

データ処理を行う際に、小数点以下の「切り捨て」が必要になるケースもある。このような場合に利用されるのが「INT」や「TRUNC」、「ROUNDDOWN」といった関数だ。いずれも「切り捨て」を実行してくれる関数であるが、これらは何が違うのだろうか? 些細なことかもしれないが、念のため説明しておこう。

  • 関数INT、TRUNC、ROUNDDOWNの使い方と相違点

まずは、「切り捨て」が必要になる状況の例を紹介していこう。以下の図は、Excelで見積書を作成した例だ。数式や関数SUMの使い方を知っている方なら問題なく作成できる、極めて一般的な計算表といえるだろう。

  • 税込の合計金額を計算する表

ただし、よく見ると、少し不安を感じる部分がある。それは、消費税(10%)を計算している部分だ。上図の場合、10%の消費税は31,605円×0.1=3,160.5円になるはずだが、画面には3,161円と表示されている。つまり、0.5円だけ多い金額表示になっている。

Excelに慣れている方なら、この原因を簡単に説明できるだろう。金額を計算する表では、セルに「通貨」の表示形式を指定するのが一般的だ。また、「小数点以下の表示桁数」を0桁に指定している場合が多いといえる。

この場合、小数点以下を四捨五入した数値が画面に表示される。試しに、「小数点以下の表示桁数」を1桁に増やしてみると、消費税は3,160.5円と正しく計算されていることを確認できる。

  • 小数点以下の表示桁数を1桁に変更

  • 厳密な「消費税」と「税込合計金額」

このように消費税の計算では、1円未満の端数が生じるケースが少なくない。この端数を「切り捨て」にするのか、それとも「切り上げ」や「四捨五入」で処理するのか。これらの処理方法は“各社が自由に決めてよい”というルールになっている。

よって、3,160.5円の消費税を3,161円と請求しても問題はない。しかし、会社のルールで「消費税の端数は切り捨てる」となっている場合は、社内的な問題が生じてしまう。

このような場合、小数点以下を切り捨てた金額を表示するように、関数を追加しておく必要がある。

手軽に「切り捨て」を実行できる関数INT

最も手軽に「切り捨て」を行えるのは「関数INT」と考えられる。その使い方は、カッコ内に「数値」や「数式」を記述するだけ。これで、カッコ内の数値(計算結果)を「切り捨て」した整数にできる。

  • 関数INTの入力

  • 小数点以下を「切り捨て」した消費税

「切り捨て」により数値を丸める関数TRUNC

続いては、「関数TRUNC」で小数点以下を切り捨てる方法を紹介していこう。関数TRUNCは以下のような書式で記述する。第2引数の[桁数]は省略することが可能で、この場合は0桁、すなわち「小数点以下の切り捨て」が実行される。

◆関数TRUNCの書式
 =TRUNC(数値, [桁数])

先ほどと同じ例を、関数TRUNCで処理した例を紹介しておこう。小数点以下を切り捨てるときは第2引数を省略できるので、関数INTと同じような記述になる。カッコ内に「消費税を計算する数式」を記述すればよい。

  • 関数TRUNCの入力

  • 小数点以下を「切り捨て」した消費税

関数INTと異なる点は、「どの桁で切り捨てを行うか?」を第2引数で指定できることだ。たとえば、1/100以降の桁を切り捨てて、小数点以下第1位までの数値にしたいときは、第2引数に「1」を指定すればよい。

逆に、10単位や100単位の数値に「切り捨て」して丸めることも可能だ。この場合は、第2引数にマイナスの数値を指定する。たとえば、10円未満を切り捨て(サービス)した金額にしたい場合は、以下のように関数TRUNCを記述すればよい。

  • 10単位に「切り捨て」する場合

  • 10円単位に丸めた合計金額

関数名が覚えやすい関数ROUNDDOWN

続いては、「関数ROUNDDOWN」で切り捨てを行う方法を紹介していこう。こちらも関数TRUNCと同様に、第2引数で「桁数」を指定できる仕様になっている。

◆関数ROUNDDOWNの書式
 =ROUNDDOWN(数値, 桁数)

ただし、第2引数の省略は不可である。この点が関数TRUNCと大きく異なる部分だ。単純に小数点以下を「切り捨て」するときも、第2引数に必ず「0」(ゼロ)を指定しておく必要がある。

  • 関数ROUNDDOWNの入力

  • 小数点以下を「切り捨て」した消費税

「桁数」を指定した例も紹介しておこう。たとえば、100円未満を切り捨て(サービス)した金額にする場合は、第2引数に「-2」を指定すればよい。

  • 100単位に「切り捨て」する場合

  • 100円単位に丸めた合計金額

なお、ROUNDDOWNと同系列の関数として、ROUNDUPやROUNDといった関数も用意されている。関数ROUNDUPは「切り上げ」、関数ROUNDは「四捨五入」の処理を行う関数で、基本的な使い方は関数ROUNDDOWNと同じだ。

◆関数ROUNDUPの書式
 =ROUNDUP(数値, 桁数)

◆関数ROUNDの書式
 =ROUND(数値, 桁数)

関数名を覚えやすいので、これらの関数をメインに「切り捨て/切り上げ/四捨五入」の処理を行っている方も多いだろう。

関数INT、TRUNC、ROWNDDOWNの違いは?

これまで解説してきたように、INT、TRUNC、ROUNDDOWNの関数は、いずれも「切り捨て」を行ってくれる関数となる。使い方を間違えなければ、どの関数を使用しても「正しい結果」を得ることが可能だ。よって、どれを使っても構わない。

それぞれの関数が大きく異なる部分は「第2引数」の扱いだ。

 INT・・・・・・第2引数なし(指定するとエラー)
 TRUNC ・・・・・第2引数を省略してもよい
 ROUNDDOWN・・・第2引数の省略は不可

関数を記述するときは、上記の違いに注意しておく必要がある。

小数点以下を切り捨てる場合は、最も記述が簡単な「関数INT」を使用するとよいだろう。桁数を指定する場合は、「関数TRUNC」または「関数ROUNDDOWN」を使用することになる。関数TRUNCの方が「入力する文字数」は少ないが、関数名を「暗記しやすい」という点では関数ROUNDDOWNの方が優位かもしれない。Dの文字が2つ連続することに注意しておこう。

なお、記述方法のほかにも、それぞれの関数には相違点がある。それは「マイナスの数値」を切り捨てする場合だ。

ここで皆さんに質問。-3.75(マイナス3.75)を切り捨てして整数にすると、いくつになるだろうか? 「-3」と答える方が多いかもしれないが、この場合、もとの数値(-3.75)より大きな値になってしまう。となると、「-4」が正しいのかも・・・。

このような考え方の違いは、関数の処理結果にも反映されている。以下に、色々な数値を関数で「切り捨て」した例を紹介しておこう。

  • 色々な数値を関数で「切り捨て」した例

TRUNCとROUNDDOWNは、単純に「小数点以下を削除した整数」が結果として返される。一方、INTの場合は「もとの値より小さい整数」が返される仕様になっている。つまり、使用する関数に応じて結果が異なる訳だ。

よって、マイナスの数値を「切り捨て」するときは、関数選びが非常に重要なポイントになる。このことも含めて、もういちど各関数の特徴をまとめておこう。

◆関数INT
 ・「小さい値の整数」に切り捨てる(切り下げる)
 ・第2引数はなし(指定するとエラー)

◆関数TRUNC
 ・「0に近い整数」に切り捨てる
 ・第2引数(桁数)を省略してもよい

◆関数ROUNDDOWN
 ・「0に近い整数」に切り捨てる
 ・第2引数(桁数)の省略は不可

少し紛らわしいため、丸暗記するのは難しいが、上記のような違いがあることは認識しておく必要がある。特に「マイナスの数値」を切り捨てするときは、その処理方法の違いに注意しなければならない。念のため、覚えておくとよいだろう。