Son rôle
Récupérer le reste d'une division.
= MOD( Nombre ; Diviseur )
- Nombre : Le nombre à diviser pour obtenir le reste.
- Diviseur : Le valeur par lequel vous souhaitez diviser Nombre.
Elle fonctionne !
Quel est le reste de la division de 11 par 4 ?
= MOD( 11 ; 4 ) ' => 3
C'est le bon résultat :
Le résultat de la division est 2 avec un reste de 3 (4 x 2 + 3 = 11).
Passons du coté obscure !
= MOD( -11 ; 4 ) ' => 1 !
Ce n'est pas le bon résultat !
Comment est calculé ce reste ?
= Nombre - Diviseur * ENT( Nombre / Diviseur )
Exemple avec une valeur positive
Le reste de la division de 11 par 4.
= 11 - 4 * ENT( 11 / 4 )
= 11 - 4 * ENT( 2,75 )
= 11 - 4 * 2
= 11 - 8
= 3
Ce n'est pas le bon résultat.
Exemple avec une valeur négative
Le reste de la division de -11 par 4.
= -11 - 4 * ENT( -11 / 4 )
= -11 - 4 * ENT( -2,75 )
= -11 - 4 * -3
= -11 + 12
= 1
Le problème vient ici de la fonction ENT car ENT( -2,75 ) = -3 et non -2 !
La solution
Faire attention à la concordance des signes
Il faut que le Diviseur soit du même signe que le Nombre (non documenté dans l'aide) !
Le reste de la division de -11 par -4.
= -11 - (-4) * ENT( -11 / -4 )
= -11 + 4 * ENT( 2,75 )
= -11 + 4 * 2
= -11 + 8
= -3
= MOD( -11 ; -4 ) ' => 3
Comment faire si je ne connais pas le signe de Nombre ?
=SI( Nombre ; MOD( Nombre ; Diviseur * SIGNE(Nombre)) ; 0 )
- * SIGNE(Nombre) permet d'adapter le signe ( SIGNE(-4) = -1 et SIGNE(4) = 1).
- Mais SIGNE(0)=0 ce qui est problématique d'où la fonction SI.
Autre solution, utiliser TRONQUE à la place de ENT
= Nombre - Diviseur * TRONQUE( Nombre / Diviseur ; 0 )
= 11 - 4 * TRONQUE( 11 / 4 )
= 11 - 4 * TRONQUE( 2,75 )
= 11 - 4 * 2
= 11 - 8
= 3
= -11 - 4 * TRONQUE( -11 / 4 )
= -11 - 4 * TRONQUE( -2,75 )
= -11 - 4 * -2
= -11 + 8
= -3
Merci pour votre attention bienveillante.