要点 —
INTとTRUNCはどちらも数値の小数部分を取り除きますが、負の数で 意見が分かれます。INTはマイナス無限大の方向に丸めるので(INT(-2.5)は-3)、 一方TRUNCは単にゼロへ向けて切り落とすので(TRUNC(-2.5)は-2)。 正の数では両者は同一です。MODは割り算後の余りを返します。そして Excel の落とし穴は、 余りが数値ではなく除数の符号を引き継ぐことです。だから=MOD(-1, 3)は-1ではなく2になります。この一点が大半のプログラミング言語と異なり、MOD で最も多い驚きです。 3つともすべてのバージョンで動作します。
=INT(-2.5) ' -> -3 床: マイナス無限大の方向
=TRUNC(-2.5) ' -> -2 切り落とし: ゼロの方向
=MOD(-1, 3) ' -> 2 余りは除数の符号を引き継ぐ
この3つは、「整数部分を取り出す」と「残りを取り出す」の主力です。一見ささいに思えます — 負の数が現れるか、別のツールから数式を移植してくるまでは。すると答えが1だけずれたり、 目に見える理由もなく符号が反転したりします。どちらの驚きも、各関数がどちらの方向に 傾くかから生まれます。このガイドは、そのメンタルモデルから始めて、そこから導かれるワナへ 進みます。
なお、日本語版 Excel でも関数名は INT・TRUNC・MOD と英語表記のままです。
このガイドで学べること
- メンタルモデル:ゼロへ向けて切り落とす vs マイナス無限大へ向けて床を取る
- なぜ
INTとTRUNCは正で一致し、負で分かれるのか TRUNCの第2引数 — 指定した小数桁に切り落とす- 余りとしての
MOD、そして誰もがつまずく除数符号のルール - 日常の2つの勝ち筋:日付と時刻の分離、シマ模様
- 判断のしどころ:床、切り落とし、余り
メンタルモデル:切り落とし vs 床
INT も TRUNC も「小数を取り除く」のですが、数値が負のとき、答える問いが違います。
TRUNCは切り落とす — 小数点以下の桁を削除し、符号は保ちます。常にゼロへ向けて。TRUNC(2.9)→2、TRUNC(-2.9)→-2。INTは床を取る — その数値以下で最大の整数を返します。常にマイナス無限大へ向けて。INT(2.9)→2、INT(-2.9)→-3。
' 正: 同一
=INT(2.9) ' -> 2
=TRUNC(2.9) ' -> 2
' 負: 分かれる
=INT(-2.9) ' -> -3 (-2.9 より下の整数)
=TRUNC(-2.9) ' -> -2 (.9 を削除するだけ)
正の数なら、どちらを使っても違いに気づくことはありません。負の数が現れた瞬間 — 損失、気温、座標 — 両者は袂を分かち、間違った方を選ぶと「負で1だけずれる」静かなバグに なります。
ルール:負の数で何を意味したいかで選ぶ
名前さえつければ、判断は単純です。「数直線で常に下へ丸める」 — 真の床、暦年齢や
階段の段数の数え方のような — を意味するなら INT を使います。「整数部分を符号ごと
そのまま残す」 — 貸方にも借方にもなりうる金額から銭を切り落とす — を意味するなら
TRUNC を使います。
=INT(-1.2) ' -> -2 「1段まるごと下」(床)
=TRUNC(-1.2) ' -> -1 「整数部分」(切り落とし)
よい見分け方:-1.2 の結果がもっと負になって不満なら、欲しかったのは TRUNC です。
あまり負でなくなって不満なら、欲しかったのは INT です。これは ROUNDDOWN と
真の床を分ける、ゼロ方向 vs 無限大方向の同じ分かれ目です —
Excel ROUND・ROUNDUP・ROUNDDOWN を参照してください。
TRUNC の隠れた第2引数
INT とは違い、TRUNC は省略可能な第2引数を取ります。切り落とす前に何桁の小数を
残すか、です。これは丸めではなく、カットします。
=TRUNC(3.14159, 2) ' -> 3.14 小数2桁を残す、丸めなし
=TRUNC(3.149, 2) ' -> 3.14 3.15 ではない — 切り落とすだけで決して丸めない
=TRUNC(1234.5, -2) ' -> 1200 負: 百の位へ切り落とす
正の数では TRUNC(x, 2) は ROUNDDOWN(x, 2) と一致しますが、意図が違います。
TRUNC は「ここでカット」と言い、ROUNDDOWN は「ゼロへ向けて丸める」と言います。
切り落とし(truncation)を明確に意図しているとき — ID の先頭数桁を取る、あるいは
意図的に精度を捨てる — TRUNC はそれをはっきり示します。
MOD:余り、そして符号のワナ
MOD(number, divisor) は割った後の残り — 余り — を返します。=MOD(7, 3) は
1 です。7 = 2×3 + 1 だからです。単純です、負の数が入ってくるまでは。
=MOD(7, 3) ' -> 1
=MOD(-1, 3) ' -> 2 -1 ではない
=MOD(1, -3) ' -> -2 符号は除数に従う
Excel では、余りは除数の符号を引き継ぎます。MOD が
number - divisor * INT(number / divisor) と定義されており、その INT がマイナス無限大へ
向けて床を取るからです。これは C、Java、VBA の Mod 演算子とは異なります。それらでは
余りは被除数に従います(だから VBA の -1 Mod 3 は -1)。数式やマクロを移植したら
剰余の結果が符号反転した — その理由はこれです。言語スタイルの挙動が必要なときは、
MOD が一致すると仮定せず、明示的に計算してください。
日常の2つの勝ち筋
日付を時刻から分離する。 Excel は日時を、整数部分が日付、小数部分が時刻の数値として
格納します。INT と MOD がそれを引き離します。
=INT(A2) ' -> 日付 (時刻を落とす)
=MOD(A2, 1) ' -> その日の時刻 (日付を落とす)
シマ模様、あるいはN行ごとのグループ化。 行番号に対する MOD は繰り返しの周期を
生み、条件付き書式やグループ化にぴったりです。
=MOD(ROW(), 2) = 0 ' 偶数行ごとに TRUE -> 縞模様の行
=MOD(ROW() - 2, 3) = 0 ' 先頭から3行ごとに TRUE
=MOD(value, 2) = 0 ' value は偶数か?
この2つのパターン — 日付/時刻の分離と周期的なグループ化 — こそ、INT と MOD が
「小数を落とす」をはるかに超えて真価を発揮する場面です。
判断のしどころ:床、切り落とし、余り
3つのきれいな選択肢です。符号を保った整数部分が欲しい? TRUNC(指定の小数桁へ
切り落とすには第2引数を使う)。マイナス無限大へ向かう真の床、あるいは日時から日付を
取り出したい? INT。残ったもの — 周期的なパターン、偶数/奇数、その日の時刻、
「N個ごと」 — が欲しい? MOD、ただし余りは除数の符号に従うことを忘れずに。
唯一の本当のワナは、負になりうるデータに対して TRUNC を意図したのに INT を
(あるいはその逆を)使うことです。だから、習慣ではなくデータの符号に関数を選ばせましょう。
ExcelMaster はどう役立つか
これらの背後にある意図はたいてい具体的です — このタイムスタンプから時刻を取り除く、
3行ごとに印をつける、整数ユニットを取って余りを別に処理する — そしてバグは
負の数の方向と MOD の符号ルールです。ExcelMaster は文章を正しい関数に対応づけます。
床や日付には INT、符号付きの値の整数部分を残すには TRUNC、周期や余りには符号の挙動を
考慮した MOD を。あなたは数値から何が欲しいかを言うだけ。それが、負の数でも壊れない
版を書きます。
よくある質問
Excel で INT と TRUNC の違いは?
どちらも小数を落とします。INT はマイナス無限大の方向に丸める(真の床)ので、
INT(-2.5) は -3 です。TRUNC はゼロへ向けて切り落とすので、TRUNC(-2.5) は -2
です。正の数では同一で、負の数でのみ異なります。
なぜ MOD は負の入力に対して正の数を返すのですか?
Excel の MOD は余りに除数の符号を与えるので、=MOD(-1, 3) は 2 です。これは
VBA や大半のプログラミング言語とは異なります。それらでは余りは被除数に従います。
日時セルから時刻部分を取り出すには?
その日の時刻には =MOD(A2, 1)、日付には =INT(A2) を使います。Excel は日付を数値の
整数部分に、時刻を小数部分に格納しています。
丸めずに小数点以下2桁に切り捨てるには?
=TRUNC(number, 2) を使います。ROUND と違い、余分な桁を丸めるのではなくカットするので、
=TRUNC(3.149, 2) は 3.14 です。
数値が偶数か奇数かを調べるには?
除数を2にして MOD を使います。=MOD(A2, 2) = 0 は偶数なら TRUE、奇数なら FALSE
です。(Excel には専用の ISEVEN と ISODD 関数もあります。)
検証環境
検証環境: Excel 365(Windows 11)— 最終確認 2026-06-27
関連ガイド: Excel ROUND・ROUNDUP・ROUNDDOWN · Excel MROUND・CEILING・FLOOR · Excel IF · Excel SUMIFS
