Excelで計算結果の小数を「小数第2位まで残して、それ以下は切り捨てたい」と思ったことはありませんか。単価計算や消費税の端数処理で、小数点以下を好きな桁数でバッサリ落としたい場面は意外と多いですよね。
TRUNC関数を使えば、桁数を指定して切り捨てが一発でできます。この記事では基本の書き方から実務パターン、INT・ROUNDとの使い分けまでまとめて紹介します。
この記事は次のような人におすすめ
- 小数を指定した桁数で切り捨てたい
- TRUNC関数とINT関数の違いを知りたい
- 消費税や単価計算で端数処理をしたい
TRUNC関数とは?
TRUNC(トランケート)関数は、数値の小数部分を指定した桁数で切り捨てる関数です。名前は英語の「truncate(切り詰める)」に由来しています。
たとえば「3.14159」にTRUNC関数で桁数「2」を指定すると「3.14」が返ります。四捨五入ではなく、指定した桁より下をそのまま切り落とすのがポイントです。
Excel 2007以降のすべてのバージョンで使用できます。Microsoft 365やGoogleスプレッドシートにも対応しています。
TRUNC関数の書き方(構文と引数)
基本構文
=TRUNC(数値, [桁数])
引数は2つですが、必須なのは「数値」だけです。
引数の説明
| 引数 | 必須/任意 | 内容 |
|---|---|---|
| 数値(number) | 必須 | 切り捨てたい数値。セル参照や数式もOK |
| 桁数(num_digits) | 任意 | 切り捨て後に残す小数の桁数。省略すると「0」(整数に切り捨て) |
桁数に「2」を指定すれば小数第2位まで残し、「0」または省略すれば整数になります。
TRUNC関数の基本的な使い方
整数に切り捨てる(桁数を省略)
桁数を省略すると、小数部分がすべて切り落とされます。
=TRUNC(45.789)
結果は「45」です。桁数を省略した場合は「0」を指定したのと同じ動作になります。
=TRUNC(99.999)
こちらも結果は「99」です。どれだけ1に近い小数でも、100にはなりません。
桁数を指定して切り捨てる
小数第2位まで残したい場合は、桁数に「2」を指定します。
=TRUNC(3.14159, 2)
結果は「3.14」です。小数第3位以下が切り捨てられます。
=TRUNC(123.456, 1)
結果は「123.4」です。桁数「1」なので小数第1位まで残ります。
セル参照で指定する
A1に「78.6543」が入っているとします。
=TRUNC(A1, 2)
結果は「78.65」です。セル参照でも同じように使えます。実務ではこちらの書き方がメインになるでしょう。
桁数にマイナスを指定する
桁数にマイナスの値を指定すると、整数部分を丸められます。
=TRUNC(1234, -2)
結果は「1200」です。百の位より下が切り捨てられます。「-1」なら十の位以下、「-3」なら千の位以下が0になります。
TRUNC関数の実務活用パターン
消費税の端数切り捨て
税込金額を計算するとき、1円未満の端数が出ることがあります。B2に税抜価格が入っているとしましょう。
=TRUNC(B2 * 1.1)
たとえば税抜価格が「1,234」の場合、1,234 x 1.1 = 1,357.4 です。TRUNC関数で小数部分が切り捨てられ「1,357」になります。
四捨五入したい場合
取引先との契約で「消費税は四捨五入」と決まっている場合はROUND関数を使ってください。
=ROUND(B2*1.1, 0)で整数に四捨五入できます。
単価計算で小数第2位まで残す
原材料の単価を小数第2位までで管理する場面です。A2に合計金額、B2に数量が入っているとします。
=TRUNC(A2/B2, 2)
たとえば合計金額「10,000」を数量「3」で割ると3,333.333…ですが、結果は「3,333.33」になります。桁数「2」で小数第2位まで残しているのがポイントです。
千円単位で表示する
売上データを千円単位に切り捨てたい場面です。A2に売上金額が入っているとします。
=TRUNC(A2, -3)
たとえば「1,567,890」の場合、結果は「1,567,000」です。千の位以下が切り捨てられます。レポート用の概算値を作るときに便利です。
時間の小数を整数に変換する
分単位のデータを「何時間何分」に変換する場面です。A2に「150」(分)が入っているとしましょう。
=TRUNC(A2/60)
150 / 60 = 2.5 ですが、TRUNC関数で「2」(時間)が取り出せます。残りの分はMOD関数で求めましょう。
=TRUNC(A2/60) & "時間" & MOD(A2,60) & "分"
結果は「2時間30分」です。TRUNCで時間、MODで分を取り出す定番パターンです。
TRUNC関数の負の数での挙動
ここがTRUNC関数の特徴を理解するうえで大切なポイントです。
負の数は「ゼロ方向」に丸まる
TRUNC関数は、正の数でも負の数でも「ゼロに近い方向」に切り捨てます。つまり、小数部分を単純に取り除くだけです。
=TRUNC(-8.9)
結果は「-8」です。「-9」ではありません。-8.9からゼロに近づく方向の整数は-8なので、そちらが返ります。
TRUNC関数とINT関数の結果比較
正の数では同じ結果ですが、負の数で違いが出ます。
| 数値 | TRUNC(数値) | INT(数値) | 違い |
|---|---|---|---|
| 8.9 | 8 | 8 | 同じ |
| 3.14 | 3 | 3 | 同じ |
| -2.3 | -2 | -3 | 異なる |
| -8.9 | -8 | -9 | 異なる |
| -0.5 | 0 | -1 | 異なる |
TRUNCは「ゼロ方向」、INT関数は「負の無限大方向」に丸めます。正の数だけなら結果は同じです。マイナスの値が混ざる可能性があるなら、どちらの挙動が欲しいか意識して選びましょう。
使い分けのコツ
「小数部分をただ取り除きたい」ならTRUNC関数、「数直線上で左側の整数が欲しい」ならINT関数です。請求金額のように「多めに取らない」のが大事な場面ではTRUNC関数が安全です。
よくあるエラーと対処法
#VALUE! エラー
数値として認識できない文字列を渡すと発生します。
=TRUNC("abc")
セル参照先に全角数字や余計なスペースが混入していないか確認してみてください。全角数字はASC関数で半角に変換できます。
=TRUNC(ASC(A1), 2)
#NUM! エラー
桁数に非常に大きな値を指定すると発生することがあります。通常の業務では起きにくいですが、桁数には妥当な範囲(-15 から 15 程度)を指定しましょう。
結果が期待と違う(浮動小数点の誤差)
Excelの内部では小数を2進数で管理しているため、まれに微小な誤差が生じます。
=TRUNC(2.1/0.3)
手計算では7ですが、内部では 2.1 / 0.3 が 6.999… になることがあります。そのためTRUNC関数の結果が「6」になるケースがあります。ROUND関数で先に丸めておくと安心です。
=TRUNC(ROUND(2.1/0.3, 10))
結果は「7」です。ROUND関数で小数第10位まで丸めれば、誤差が解消されます。
似た関数との違い・使い分け
Excelには「切り捨て」系の関数がいくつかあります。迷ったときは以下の表を参考にしてみてください。
| 関数 | 丸め方向 | 桁数指定 | 負の数での挙動 | 使いどころ |
|---|---|---|---|---|
| TRUNC | ゼロ方向 | 可能 | -8.9 → -8 | 桁数を指定して切り捨てたいとき |
| INT | 負の無限大方向 | 不可(常に整数) | -8.9 → -9 | 整数が欲しいとき全般 |
| ROUND | 四捨五入 | 可能 | -8.5 → -9 | 端数を丸めたいとき |
| ROUNDDOWN | ゼロ方向 | 可能 | -8.9 → -8 | TRUNCと同じ(名前で直感的) |
| FLOOR | 負の無限大方向 | 倍数指定 | -8.9 → 基準値による | 倍数単位で切り捨てたいとき |
TRUNCとROUNDDOWNの違い
TRUNCとROUNDDOWNは同じ結果を返します。どちらを使っても構いません。「切り捨て」という名前がわかりやすいROUNDDOWN派と、短く書けるTRUNC派に分かれます。
選び方のコツは3つです。
- 「桁数を指定して切り捨てたい」→ TRUNC関数かROUNDDOWN関数
- 「とにかく整数にしたい」→ INT関数が一番シンプル
- 「15分単位・100円単位で切り捨てたい」→ FLOOR関数
丸め関数の全体像を知りたい方は「Excelの丸め関数10種を完全比較」もあわせてチェックしてみてください。
まとめ
TRUNC関数は、桁数を指定して小数を切り捨てられるシンプルな関数です。
ポイントを整理します。
- 構文は
=TRUNC(数値, [桁数])で、桁数を省略すると整数に切り捨て - 正の数でも負の数でも「ゼロ方向」に丸める(小数部分を単純に取り除く)
- 桁数にマイナスを指定すると、整数部分を千円単位・万単位で丸められる
- 消費税の端数処理、単価計算、千円単位表示など実務の出番が多い
- 負の数を扱うときはINT関数との結果の違いに注意する
まずは =TRUNC(A1, 2) でセルの値を小数第2位まで切り捨てるところから試してみてください。
