小数点以下を削除するINT関数については、本連載「Excelで時短」においてたびたび触れてきた。このINT関数と同様、小数点以下を削除できる関数が他にもある。TRUNC関数それにROUNDDOWN関数がそれだ。今回はこれらの関数の微妙な違いについて考えてみたい。

INT関数 数学/三角関数

=INT(数値)

 数値 小数を切り捨てて整数にする実数を指定する。

関連記事 Excelで桁数が大きな数値を見やすく、千単位や万単位で表示する方法

似て非なるINTとTRUNC

 まずは、TRUNC関数とROUNDDOWN関数の構造と引数について触れておく。TRUNC関数、ROUNDDOWN関数はいずれも、「数値」と「桁数」の2つの引数を持つ。

TRUNC関数 数学/三角関数

=TRUNC(数値、桁数)

 数値の小数部分を切り捨てて、整数または指定した桁数に変換する。

①数値 小数部を切り捨てする値を指定する。
②桁数 省略可能。切り捨てを行った後の桁数を指定する。桁数の規定値は「0」になる。

ROUNDDOWN関数 数学/三角関数

=ROUNDDOWN(数値、桁数)

 数値を指定した桁数で切り捨てる。

①数値 切り捨ての対象となる数値を指定する。
②桁数 切り捨てを行った後の桁数を指定する。

 これら3つの関数にどのような違いがあるのか、ともあれ下図を見てもらいたい。それぞれの関数を用いて「123.456」と「-123.456」の小数点以下を切り捨ててみた。

それぞれの関数で「123.456」と「-123.456」の小数点以下を切り捨てた。マイナスの値を扱ったINT関数で違いが出た
それぞれの関数で「123.456」と「-123.456」の小数点以下を切り捨てた。マイナスの値を扱ったINT関数で違いが出た
[画像のクリックで拡大表示]

 数式はB2が「=INT(B1)」、B3が「=TRUNC(B1)」、B4が「=ROUNDDOWN(B1,0)」になっている。TRUNC関数は「桁数」を省略すると小数点以下が自動的に切り捨てられる。

 結果、「123.456」については、3つの関数とも「123」になった。注目したいのは、「-123.456」の小数点以下を処理した箇所だ。INT関数が「-124」、TRUNC関数とROUNDDOWN関数が「-123」になった。微妙な違いとは、値がマイナス時の扱いに他ならない。

 INT関数の振る舞いを再度確認すると、こちらは「指定した数値を超えない最大の整数を返す」というものだ。マイナスの場合、「-123」と「-124」で大きいのは「-123」のほうだ。そのため「-123.456」について小数点以下を切り捨てて、元の数値を超えない最大の整数は「-124」になる。「-123」では、元の数値を超えてしまうからだ。そのためINT関数の場合、小数点以下の切り捨てではなく、「元の値を超えない整数への丸め」と表現したほうが適切になる。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。