🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel INT, TRUNC et MOD — Supprimer la décimale et trouver le reste

|

Excel INT, TRUNC et MOD — Supprimer la décimale et trouver le reste

L'essentielINT et TRUNC suppriment tous deux la partie fractionnaire d'un nombre, mais ils divergent sur les négatifs : INT arrondit vers moins l'infini (donc INT(-2.5) vaut -3), tandis que TRUNC tronque simplement vers zéro (donc TRUNC(-2.5) vaut -2). Pour les nombres positifs, ils sont identiques. MOD renvoie le reste d'une division — et le piège d'Excel, c'est que le reste prend le signe du diviseur, pas celui du nombre, donc =MOD(-1, 3) vaut 2, et non -1. Ce seul fait diffère de la plupart des langages de programmation et constitue la première surprise de MOD. Les trois fonctionnent dans toutes les versions.

=INT(-2.5)        ' -> -3   plancher : vers moins l'infini
=TRUNC(-2.5)      ' -> -2   troncature : vers zéro
=MOD(-1, 3)       ' -> 2    le reste prend le signe du diviseur

Ces trois fonctions sont les chevaux de trait du « donne-moi la partie entière » et du « donne-moi ce qui reste ». Elles semblent triviales — jusqu'à ce qu'un nombre négatif surgisse, ou que vous portiez une formule depuis un autre outil, et que la réponse soit décalée d'une unité ou change de signe sans raison visible. Les deux surprises viennent du sens vers lequel chaque fonction penche. Ce guide commence par ce modèle mental, puis aborde les pièges qui en découlent.

Ce que vous allez apprendre

  • Le modèle mental : tronquer vers zéro vs plancher vers moins l'infini
  • Pourquoi INT et TRUNC s'accordent sur les positifs et divergent sur les négatifs
  • Le second argument de TRUNC — tronquer à un nombre de décimales défini
  • MOD, le reste, et la règle du signe du diviseur qui piège tout le monde
  • Deux victoires du quotidien : séparer la date de l'heure, et le motif zébré
  • L'arbitrage : plancher, troncature ou reste

Le modèle mental : troncature vs plancher

INT et TRUNC « suppriment les décimales » tous deux, mais ils répondent à une question différente quand le nombre est négatif :

  • TRUNC tronque — il supprime les chiffres après la virgule et garde le signe. Toujours vers zéro. TRUNC(2.9)2, TRUNC(-2.9)-2.
  • INT arrondit au plancher — il renvoie le plus grand entier inférieur ou égal au nombre. Toujours vers moins l'infini. INT(2.9)2, INT(-2.9)-3.
' positif : identique
=INT(2.9)    ' -> 2
=TRUNC(2.9)  ' -> 2
' négatif : ils divergent
=INT(-2.9)   ' -> -3   (l'entier EN DESSOUS de -2,9)
=TRUNC(-2.9) ' -> -2   (on supprime juste le ,9)

Pour les nombres positifs, vous pouvez prendre l'un ou l'autre sans jamais voir la différence. Dès qu'un négatif apparaît — une perte, une température, une coordonnée — ils se séparent, et choisir le mauvais, c'est le bug silencieux du « décalage d'une unité sur les négatifs ».

Remarque : dans un Excel francophone, ces fonctions portent des noms localisés — INT s'appelle ENT, TRUNC TRONQUE et MOD reste MOD. La fonction ROUNDDOWN, citée en comparaison, s'appelle ARRONDI.INF. La syntaxe et le comportement sont identiques ; seul le nom change.

La règle : choisir selon ce que vous voulez sur les négatifs

La décision est simple une fois qu'on la nomme. Si vous voulez dire « toujours arrondir vers le bas sur la droite graduée » — un vrai plancher, comme le fonctionnement d'un âge révolu ou d'un comptage de marches — utilisez INT. Si vous voulez dire « garder juste la partie entière, signe compris » — retirer les centimes d'un montant qui peut être un crédit ou un débit — utilisez TRUNC.

=INT(-1.2)     ' -> -2   « un cran complet en dessous » (plancher)
=TRUNC(-1.2)   ' -> -1   « la partie entière » (troncature)

Un bon indice : si vous seriez mécontent qu'un résultat de -1,2 devienne plus négatif, c'est TRUNC que vous vouliez. Si vous seriez mécontent qu'il devienne moins négatif, c'est INT. C'est la même opposition vers-zéro-contre-vers-l'infini qui sépare ROUNDDOWN d'un vrai plancher — voyez Excel ROUND, ROUNDUP et ROUNDDOWN.

Le second argument caché de TRUNC

Contrairement à INT, TRUNC accepte un second argument facultatif : combien de décimales conserver avant de tronquer. Il n'arrondit pas — il coupe.

=TRUNC(3.14159, 2)   ' -> 3.14    garder 2 décimales, sans arrondir
=TRUNC(3.149, 2)     ' -> 3.14    PAS 3,15 — il tronque, n'arrondit jamais
=TRUNC(1234.5, -2)   ' -> 1200    négatif : tronquer aux centaines

Pour les nombres positifs, TRUNC(x, 2) correspond à ROUNDDOWN(x, 2), mais l'intention diffère : TRUNC dit « coupe ici », ROUNDDOWN dit « arrondis vers zéro ». Quand vous voulez spécifiquement une troncature — prendre les premières décimales d'un identifiant, ou écarter délibérément de la précision — TRUNC le dit clairement.

MOD : le reste, et le piège du signe

MOD(number, divisor) renvoie ce qui reste après division — le reste. =MOD(7, 3) vaut 1 parce que 7 = 2×3 + 1. Simple, jusqu'à ce qu'un négatif entre en jeu.

=MOD(7, 3)     ' -> 1
=MOD(-1, 3)    ' -> 2     PAS -1
=MOD(1, -3)    ' -> -2    le signe suit le DIVISEUR

Dans Excel, le reste prend le signe du diviseur, car MOD est défini comme number - divisor * INT(number / divisor) — et cet INT arrondit au plancher vers moins l'infini. C'est différent de l'opérateur Mod du C, de Java et de VBA, où le reste suit le dividende (donc le -1 Mod 3 de VBA vaut -1). Si vous avez porté une formule ou une macro et que les résultats de modulo ont changé de signe, voilà pourquoi. Quand vous avez besoin du comportement à la manière de ces langages, calculez-le explicitement plutôt que de supposer que MOD y correspond.

Deux victoires du quotidien

Séparer une date d'une heure. Excel stocke une date-heure comme un nombre dont la partie entière est la date et la partie fractionnaire l'heure. INT et MOD les séparent :

=INT(A2)       ' -> la date (supprime l'heure)
=MOD(A2, 1)    ' -> l'heure de la journée (supprime la date)

Zébrer les lignes ou regrouper une ligne sur N. MOD appliqué à un numéro de ligne donne un cycle répété, parfait pour la mise en forme conditionnelle ou le regroupement :

=MOD(ROW(), 2) = 0          ' VRAI sur chaque ligne paire -> lignes alternées
=MOD(ROW() - 2, 3) = 0      ' VRAI une ligne sur 3 à partir du haut
=MOD(value, 2) = 0          ' value est-elle paire ?

Ces deux motifs — séparation date/heure et regroupement cyclique — sont là où INT et MOD rendent vraiment service, bien au-delà du simple « supprimer la décimale ».

L'arbitrage : plancher, troncature ou reste

Trois choix nets. Vous voulez la partie entière, signe préservé ? TRUNC (et utilisez son second argument pour tronquer à un nombre de décimales défini). Vous voulez un vrai plancher vers moins l'infini, ou extraire une date d'une date-heure ? INT. Vous voulez ce qui reste — motifs périodiques, pair/impair, heure de la journée, « une sur N » ? MOD, sans oublier que le reste suit le signe du diviseur. Le seul vrai piège est d'utiliser INT là où vous vouliez TRUNC (ou l'inverse) sur des données qui peuvent être négatives ; laissez donc le signe de vos données, et non l'habitude, choisir la fonction.

Comment ExcelMaster vous aide

L'intention derrière ces fonctions est en général concrète — retire l'heure de cet horodatage, marque une ligne sur trois, prends les unités entières et traite le reste séparément — et les bugs viennent du sens des nombres négatifs et de la règle de signe de MOD. ExcelMaster fait correspondre la phrase à la bonne fonction : INT pour un plancher ou une date, TRUNC pour garder la partie entière d'une valeur signée, MOD pour les cycles et les restes avec le comportement de signe pris en compte. Vous dites ce que vous voulez tirer du nombre ; il écrit la version qui survit aux négatifs.

Foire aux questions

Quelle différence entre INT et TRUNC dans Excel ?

Les deux suppriment les décimales. INT arrondit vers moins l'infini (un vrai plancher), donc INT(-2.5) vaut -3. TRUNC tronque vers zéro, donc TRUNC(-2.5) vaut -2. Ils sont identiques pour les nombres positifs et ne diffèrent que sur les négatifs.

Pourquoi MOD renvoie-t-il un nombre positif pour une entrée négative ?

Le MOD d'Excel donne au reste le signe du diviseur, donc =MOD(-1, 3) vaut 2. Cela diffère de VBA et de la plupart des langages de programmation, où le reste suit le dividende.

Comment extraire la partie heure d'une cellule date-heure ?

Utilisez =MOD(A2, 1) pour l'heure de la journée et =INT(A2) pour la date. Excel stocke la date dans la partie entière du nombre et l'heure dans la partie fractionnaire.

Comment tronquer à 2 décimales sans arrondir ?

Utilisez =TRUNC(number, 2). Contrairement à ROUND, il coupe les chiffres superflus au lieu de les arrondir, donc =TRUNC(3.149, 2) vaut 3.14.

Comment vérifier si un nombre est pair ou impair ?

Utilisez MOD avec un diviseur de 2 : =MOD(A2, 2) = 0 vaut VRAI pour les nombres pairs et FAUX pour les impairs. (Excel propose aussi les fonctions dédiées ISEVEN et ISODD.)

Testé dans

Testé dans : Excel 365 (Windows 11) — dernière vérification le 27/06/2026.

Guides associés : Excel ROUND, ROUNDUP et ROUNDDOWN · Excel MROUND, CEILING et FLOOR · Excel IF · Excel SUMIFS