iconeexcel.gif (1867 octets)

La fonction MOD

Dans Excel, certaines fonctions sont immédiatement compréhensibles : SOMME, MOYENNE, SI, MAJUSCULE... Mais d'autres sont plus obscures. Par exemple la fonction MOD.

MOD est l'abréviation de modulo. Mais qu'est-ce qu'un modulo ?

Le modulo est une expression mathématique liée à la division. Par exemple 100/2 = 50, c'est une division. 100 / 3 = 33.33333... , c'est aussi une division, mais dans ce deuxième exemple, le résultat de la division n'est pas un nombre entier (il y a une virgule).

Il est possible de dire que 100/3 = 33, reste 1. Ou vais-je pêcher ce "1" ?

Simplement si je multiplie 33 par 2 ca fait 66, si je multiplie 33 par 3 ca fait 99, mais si je multiplie 33 par 4, ca fait 132, et 132 c'est plus que 100.

Donc le plus que je peux multiplier 33 pour avoir 100 au maximum, c'est 3 parce que 33 * 3 = 99 et il reste ... 1!

On essaie avec une autre division ?

Par exemple 1000 / 4. La réponse est 250 exactement. Si je multiplie 250 par 4 ca fait exactement 1000, et il reste... 0.

Mais si je divise 20 par 3, ca fait 6.66666... On ne peut pas le diviser. Je prend 6, et par combien puis-je le multiplier pour avoir maximum 20 ?

Par 3. Parce que 6 * 3 = 18. 6 * 4 = 24, ce serait trop. Donc 6 * 3 = 18 et il reste ... 2 pour arriver à 20.

Le modulo, c'est donc le reste de la division. Avec Excel, si on écrit

=MOD(20;3)

Il va nous renvoyer donc 2.

Je suis sûr que vous vous demandez à quoi un tel truc peut bien servir ! Avant d'aller plus loin, faites donc ces quelques petits exercices. Calculez de tête les modulos suivants :

=MOD(13;2)

La réponse est 1, parce que 2 * 6 = 12, reste 1. Compris ? A vous

=MOD(14;2)
=MOD(18;6)
=MOD(23;7)

Plus dur :

=MOD(100;80)
=MOD(55;1)
=MOD(3;0)

Pour voir si vous avez trouvé les bonnes réponses, faites ces calculs dans Excel, tout simplement.

Vous avez constaté que quand on demande le modulo de deux nombres qui se divisent correctement, le résultat est 0. MOD(66;3) par exemple. Regardez comme ça devient intéressant : imaginons le tableau Excel suivant :

  A B C D
1 10 =MOD(A1;2) =MOD(A1;3) =MOD(A1;5)
2 11 =MOD(A2;2) =MOD(A2;3) =MOD(A2;5)
3 12 =MOD(A3;2) =MOD(A3;3) =MOD(A3;5)
4 13 =MOD(A4;2) =MOD(A4;3) =MOD(A4;5)
5 14 =MOD(A5;2) =MOD(A5;3) =MOD(A5;5)
6 15 =MOD(A6;2) =MOD(A6;3) =MOD(A6;5)
7 16 =MOD(A7;2) =MOD(A7;3) =MOD(A7;5)
8 17 =MOD(A8;2) =MOD(A8;3) =MOD(A8;5)
9 18 =MOD(A9;2) =MOD(A9;3) =MOD(A9;5)
10 19 =MOD(A10;2) =MOD(A10;3) =MOD(A10;5)

Essayez d'imaginer les résultats que ça va donner avant de regarder le tableau ici plus bas qui donne la solution :

  A B C D
1 10 0 1 0
2 11 1 2 1
3 12 0 0 2
4 13 1 1 3
5 14 0 2 4
6 15 1 0 0
7 16 0 1 1
8 17 1 2 2
9 18 0 0 3
10 19 1 1 4

C'est rigolo, mais on se demande toujours pourquoi on pourrait bien avoir besoin de ça...

Ca vient, ca vient !

Avant d'aller plus loin, il faut que je vous montre deux fonctions nettement plus simple : LIGNE et COLONNE. En fait surtout la fonction LIGNE.

C'est très facile, c'est simplement une fonction qui retourne le numéro de la ligne courante. Par exemple :

  A B
1    
2    
3   =LIGNE()

donne :

  A B
1    
2    
3  
3

Imaginez maintenant le tableau suivant :

  A
1 =MOD(LIGNE();3)
2 =MOD(LIGNE();3)
3 =MOD(LIGNE();3)
4 =MOD(LIGNE();3)
5 =MOD(LIGNE();3)
6 =MOD(LIGNE();3)

Ca va donner le reste de la division de la ligne courante avec 3 :

  A
1
1
2
2
3
0
4
1
5
2
6
0

Bien. Maintenant, imaginons une feuille de calcul avec des dates, comme ceci :

  A B
1 Nouvelle semaine 1.1.04
2   2.1.04
3  

3.1.04

4   4.1.04
5   5.1.04
6   6.1.04
7   7.1.04
8 Nouvelle semaine 8.1.04
9   9.1.04
10   10.1.04
11   11.1.04
12   12.1.04
13   13.1.04
14   14.1.04
15 Nouvelle semaine 15.1.04

Nous aimerions maintenant que tous les 7 jours, il soit écrit "Nouvelle semaine" dans la première colonne. Bien entendu, on peut l'écrire à la main, mais en utilisant MOD, nous allons pouvoir le faire de manière automatique.

Première étape :

  A B
1 =MOD(Ligne();7) 1.1.04
2 =MOD(Ligne();7) 2.1.04
3 =MOD(Ligne();7)

3.1.04

4 =MOD(Ligne();7) 4.1.04
5 =MOD(Ligne();7) 5.1.04
6 =MOD(Ligne();7) 6.1.04
7 =MOD(Ligne();7) 7.1.04
8 =MOD(Ligne();7) 8.1.04
9 =MOD(Ligne();7) 9.1.04
10 =MOD(Ligne();7) 10.1.04
11 =MOD(Ligne();7) 11.1.04
12 =MOD(Ligne();7) 12.1.04
13 =MOD(Ligne();7) 13.1.04
14 =MOD(Ligne();7) 14.1.04
15 =MOD(Ligne();7) 15.1.04

Qui donne

  A B
1
1
1.1.04
2
2
2.1.04
3
3

3.1.04

4
4
4.1.04
5
5
5.1.04
6
6
6.1.04
7
0
7.1.04
8
1
8.1.04
9
2
9.1.04
10
3
10.1.04
11
4
11.1.04
12
5
12.1.04
13
6
13.1.04
14
0
14.1.04
15
1
15.1.04

Et maintenant, en utilisant la fonction SI, nous allons pouvoir afficher "Nouvelle semaine" si la ligne courante MOD 7 = 1et sinon on écrit "" (rien) :

=SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"")

  A B
1 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 1.1.04
2 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 2.1.04
3 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"")

3.1.04

4 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 4.1.04
5 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 5.1.04
6 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 6.1.04
7 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 7.1.04
8 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 8.1.04
9 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 9.1.04
10 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 10.1.04
11 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 11.1.04
12 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 12.1.04
13 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 13.1.04
14 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 14.1.04
15 =SI(MOD(LIGNE();7)=1;"Nouvelle semaine";"") 15.1.04

Qui donne :

  A B
1 Nouvelle semaine 1.1.04
2   2.1.04
3  

3.1.04

4   4.1.04
5   5.1.04
6   6.1.04
7   7.1.04
8 Nouvelle semaine 8.1.04
9   9.1.04
10   10.1.04
11   11.1.04
12   12.1.04
13   13.1.04
14   14.1.04
15 Nouvelle semaine 15.1.04

EXERCICE

Vous êtes le directeur d'une école. Il y a 18 élèves qui sont venu s'inscrire. Il faudrait que quand le directeur écrit un chiffre dans C2, le mot "Autre classe" apparaisse en regard du premirer élève de la nouvelle classe : Regardez l'exemple plus bas pour comprendre.

  A B C
1   René Martin

Nombre d'élèves par classe :

2   Albert Stanso  
3   Bastien Novellay  
4   Auguste Richard  
5   Béatrice Catalan  
6   Martin Capicci  
7   Norbert Kalmann  
8   Patrick Morcire  
9   Jeanne Aubrun  
10   Patrice Manivelle  
11   Jean-René Barrand  
12   Isabelle Parraccin  
13   Noël Garbande  
14   Sébastien Cruz  
15   Marcelle Borand-Luçon  
16   Aude Chabre  
17   Lucie Barnasse  
18   Julien Auberre  

Voici un exemple : Admettons que le directeur écrive 5 dans C2 :

  A B C
1 Nouvelle classe René Martin

Nombre d'élèves par classe :

2   Albert Stanso
5
3   Bastien Novellay  
4   Auguste Richard  
5   Béatrice Catalan  
6 Nouvelle classe Martin Capicci  
7   Norbert Kalmann  
8   Patrick Morcire  
9   Jeanne Aubrun  
10   Patrice Manivelle  
11 Nouvelle classe Jean-René Barrand  
12   Isabelle Parraccin  
13   Noël Garbande  
14   Sébastien Cruz  
15   Marcelle Borand-Luçon  
16 Nouvelle classe Aude Chabre  
17   Lucie Barnasse  
18   Julien Auberre  

Essayez également de réaliser cet exercice sans utiliser MOD, vous verrez que c'est nettement plus délicat !