Aller au contenu principal

Qu'est-ce que la fonction MOIS.DECALER ?

Définition
La fonction MOIS.DECALER renvoie une date obtenue en ajoutant (ou soustrayant) un nombre entier de mois à une date de départ, en conservant le jour du mois d'origine.

MOIS.DECALER (EDATE en anglais) te sert dès que tu dois avancer ou reculer une date de plusieurs mois sans te tromper de jour : ajouter 30 ou 60 jours à la main finit toujours par glisser d'une date sur l'autre, surtout aux changements de mois.

C'est elle qui calcule les dates d'échéance de tes contrats, planifie les rappels de renouvellement trimestriel, construit tes rétroplannings de projet ou retrouve les dates d'embauche à partir de l'ancienneté. Plus besoin de compter les mois sur tes doigts ni de te perdre dans les calendriers.

Syntaxe

=MOIS.DECALER(date_départ; mois)

Clique sur un argument pour aller à son explication.

Si le jour de la date de départ n'existe pas dans le mois cible (ex : le 31 janvier décalé d'un mois), Excel ajuste automatiquement vers le dernier jour du mois cible.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction MOIS.DECALER

1

date_départ

: la date de référence à partir de laquelle le calcul est effectué

Tu peux utiliser une référence de cellule comme A1, une date entre guillemets comme "15/01/2024", ou le résultat d'une autre fonction comme AUJOURDHUI().

Excel stocke toutes les dates comme des numéros de série : ce paramètre doit contenir une vraie date formatée, pas du texte qui ressemble à une date. Si la cellule affiche un texte aligné à gauche, c'est souvent signe que ce n'est pas une date reconnue.

2

mois

: le nombre de mois à ajouter si positif, à soustraire si négatif

Tu peux utiliser un entier direct comme 12, une référence de cellule comme B2, ou même une formule qui calcule un nombre de mois.

Quelques exemples courants : 3 pour avancer de 3 mois, -6 pour reculer de 6 mois, 12 pour avancer d'un an, -24 pour reculer de 2 ans. Il n'y a pas de limite sur la valeur.

Le savais-tu ?
Si le jour de départ n'existe pas dans le mois cible, MOIS.DECALER ne plante pas : elle glisse au dernier jour disponible. Le 31 janvier décalé d'un mois tombe sur le 28 ou le 29 février, jamais sur un 31 février inexistant.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment ajouter des mois à une date avec la fonction MOIS.DECALER

Un client t'appelle pour savoir jusqu'à quand court son contrat, et tu ne vas pas le faire patienter le temps de compter les mois sur un calendrier. Ton tableau liste chaque client avec sa date de signature, la durée négociée en mois et le type de contrat, et il ne manque que la date d'échéance en face de chaque ligne. La fonction MOIS.DECALER part de la date de signature, avance du nombre de mois prévu et te sort la date exacte, en gérant les fins de mois et les années bissextiles toute seule.

Les étapes
  1. 1
    Dans une cellule, écris =MOIS.DECALER(.
  2. 2
    En 1er argument : clique sur la date de signature du contrat, B2. Une référence de cellule suffit, à condition qu'elle contienne une vraie date et non du texte qui y ressemble.
  3. 3
    En 2ᵉ argument : clique sur la durée négociée en mois, C2, qui vaut 12 ici. En pointant la cellule plutôt qu'en tapant 12 en dur, tu changes la durée d'un contrat sans jamais rouvrir la formule.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=MOIS.DECALER(B2; C2)
Explication
La fonction lit la date de signature en B2, avance du nombre de mois inscrit en C2 et renvoie la date d'échéance exacte. Recopiée vers le bas, elle traite tous les contrats d'un coup, et si tu corriges une durée, l'échéance suit sans que tu retouches la formule.
Exemple 2

Comment reculer de plusieurs mois avec la fonction MOIS.DECALER

La date de lancement vient d'être annoncée en réunion et tout le monde attend maintenant le calendrier des étapes qui y mènent. Ton tableau donne le décalage de chaque jalon par rapport au lancement, exprimé en mois négatifs, et tu veux la date réelle en face de chaque ligne. La fonction MOIS.DECALER accepte les nombres négatifs : elle recule alors dans le calendrier, ce qui construit un rétroplanning complet à partir d'une seule date de référence.

Les étapes
  1. 1
    Dans une cellule, écris =MOIS.DECALER(.
  2. 2
    En 1er argument : clique sur la date de lancement et verrouille-la en $C$2. Les dollars la gardent accrochée à cette cellule quand tu recopies la formule vers le bas, et tous les jalons se comptent alors à partir du même point fixe.
  3. 3
    En 2ᵉ argument : clique sur le décalage de l'étape en cours, B3. La valeur est négative, -2, donc la fonction MOIS.DECALER recule de deux mois, et cette référence-là bouge bien de ligne en ligne puisqu'elle n'a pas de dollars.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=MOIS.DECALER($C$2; B3)
Explication
Un nombre négatif fait remonter la fonction MOIS.DECALER dans le temps au lieu de l'avancer, ce qui donne la date de chaque jalon en une seule formule recopiée. Les dollars de $C$2 gardent le calcul accroché à la date de lancement pendant la recopie, si bien qu'un lancement repoussé d'un mois repousse tout le rétroplanning avec lui.
Exemple 3

Comment afficher un statut automatique avec les fonctions MOIS.DECALER et SI

Ton chef veut la liste des contrats à relancer avant midi, et tu n'as pas envie de reprendre les échéances une par une pour voir lesquelles sont déjà passées. Chaque ligne porte la date de début et la durée en mois, mais rien n'indique où l'on en est aujourd'hui. En imbriquant la fonction MOIS.DECALER dans une fonction SI, tu compares l'échéance calculée à la date du jour et le tableau affiche le statut de chaque contrat tout seul.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 1er argument : écris la comparaison qui départage les contrats, MOIS.DECALER(B2; C2)<=AUJOURDHUI(). La fonction MOIS.DECALER calcule l'échéance à la volée à partir de la date de début B2 et de la durée C2, et le test la confronte à la date du jour renvoyée par AUJOURDHUI. Il vaut vrai quand le contrat est arrivé au bout, faux sinon.
  3. 3
    En 2ᵉ argument : saisis ce qu'Excel affiche quand le test est vrai, "À renouveler". Les guillemets sont obligatoires pour qu'Excel affiche ce texte brut au lieu d'y chercher un calcul.
  4. 4
    En 3ᵉ argument : saisis la sortie du cas faux, "En cours". C'est ce qui s'affiche tant que l'échéance est encore devant toi.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=SI(MOIS.DECALER(B2; C2)<=AUJOURDHUI(); "À renouveler"; "En cours")
Explication
La fonction MOIS.DECALER calcule l'échéance à la volée, directement à l'intérieur du test, et la fonction SI compare cette échéance à la date du jour renvoyée par AUJOURDHUI. Aucune colonne intermédiaire n'est nécessaire, et le verdict se remet à jour tout seul à chaque ouverture du fichier.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction MOIS.DECALER

Format de date non reconnu : erreur #VALEUR!

Si ta cellule date_départ contient du texte qui ressemble à une date (affiché aligné à gauche), Excel ne peut pas la traiter comme une vraie date et renvoie #VALEUR!.

Solution : Vérifie que ta cellule contient bien une date reconnue. Utilise =ESTNUM(A1) : si le résultat est VRAI, c'est une vraie date. Sinon, convertis le texte avec =DATEVAL("15/01/2024") ou reconstruit la date avec =DATE(2024; 1; 15).

Résultat affiché comme un numéro de série (ex : 45323)

Excel stocke les dates comme des nombres entiers. Si la cellule de résultat est formatée en « Général » ou « Nombre », elle affiche ce numéro au lieu d'une date lisible.

Solution : Sélectionne la cellule, fais Ctrl+1, choisis « Date » et le format souhaité (ex : jj/mm/aaaa). Le numéro se transforme instantanément en date lisible.

Date différente de celle attendue sur les fins de mois

Si tu pars du 31 janvier et ajoutes 1 mois, Excel ne peut pas renvoyer le 31 février qui n'existe pas. Il ajuste au dernier jour du mois cible (28 ou 29 février).

Solution : Ce comportement est normal et voulu. Si tu veux toujours tomber sur le dernier jour du mois, utilise plutôt FIN.MOIS(date; mois). Si tu veux un jour fixe du mois quelle que soit la date de départ, combine MOIS.DECALER avec la fonction DATE.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

MOIS.DECALER vs FIN.MOIS vs DATE

Les trois fonctions manipulent les dates par mois, mais avec des résultats différents selon ce que tu veux garder ou contrôler.

CritèreMOIS.DECALERFIN.MOISDATE
Jour conservéOui (même jour)Non (dernier jour)Tu choisis
Décalage en moisDirectDirectCalcul manuel
Gestion années bissextilesAutomatiqueAutomatiqueÀ gérer manuellement
Recul dans le tempsOui (nombre négatif)Oui (nombre négatif)Oui (mais plus complexe)
Cas d'usage typiqueContrats, échéances fixesClôtures comptablesDates entièrement personnalisées
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec MOIS.DECALER

1Astuce

Combiner MOIS.DECALER et FIN.MOIS pour les clôtures de trimestre

Tu peux imbriquer les deux fonctions : =FIN.MOIS(MOIS.DECALER(A1; 3); 0) te donne le dernier jour du mois, exactement 3 mois après la date en A1. Pratique pour calculer des dates de clôture trimestrielle à partir de n'importe quelle date de départ.
Tu obtiens la souplesse de MOIS.DECALER pour le décalage et la précision de FIN.MOIS pour le jour.

2Astuce

Préférer MOIS.DECALER à +365 pour les anniversaires annuels

Pour calculer une date exactement un an plus tard, utilise =MOIS.DECALER(date; 12) plutôt qu'ajouter 365 ou 366 jours. Les années bissextiles sont gérées automatiquement : tu retombes toujours sur le même jour du mois.
Ajouter 365 jours te ferait atterrir sur le mauvais jour certaines années.

3Astuce

Utiliser ESTNUM pour valider une date avant de calculer

Avant d'appliquer MOIS.DECALER sur une plage import ée ou saisie à la main, teste si tes cellules contiennent de vraies dates : =ESTNUM(A1) renvoie VRAI pour une date reconnue, FAUX pour du texte.
Un seul texte déguisé en date suffit à déclencher une #VALEUR! sur toute une colonne.

Le conseil du pro
Pour une date exactement un an plus tard, écris MOIS.DECALER(date; 12) plutôt que d'ajouter 365 jours. Les années bissextiles sont gérées toutes seules et tu retombes toujours sur le même jour du mois, là où +365 te ferait glisser d'un jour certaines années.
FAQ

Questions fréquentes

MOIS.DECALER conserve le jour de la date d'origine. Si tu pars du 15 janvier et avances de 3 mois, tu obtiens le 15 avril. FIN.MOIS renvoie toujours le dernier jour du mois cible, peu importe le jour de départ. Utilise MOIS.DECALER pour les contrats et abonnements où le jour du mois compte, et FIN.MOIS pour les clôtures comptables ou les calculs de fin de période.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction MOIS.DECALER : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir