ElyxAI

Maîtriser la formule DATEDIF : Calculer précisément les intervalles de temps

Intermédiaire
=DATEDIF(date_début; date_fin; unité)

La formule DATEDIF est l'outil incontournable pour calculer la différence entre deux dates dans Excel. Qu'il s'agisse de déterminer l'âge d'une personne, de calculer la durée d'un projet ou de mesurer le temps écoulé entre deux événements, DATEDIF offre une flexibilité remarquable avec ses six unités de calcul différentes. Cette fonction, bien que moins connue que d'autres formules de date, est extrêmement puissante et permet d'obtenir des résultats précis en quelques secondes. Contrairement à d'autres approches comme la simple soustraction de dates ou l'utilisation de DAYS, DATEDIF vous permet de calculer des intervalles dans l'unité de votre choix : années complètes, mois complets, jours restants, ou encore des combinaisons spécifiques. Elle est particulièrement utile dans les domaines des ressources humaines, de la gestion de projets, de l'assurance et du calcul d'ancienneté. Dans ce guide complet, nous explorerons chaque paramètre de DATEDIF, examinerons des cas d'usage réels et découvrirons les pièges à éviter pour maîtriser pleinement cette fonction essentielle.

Syntaxe et paramètres

La formule DATEDIF utilise trois paramètres obligatoires : date_début, date_fin et unité. Le premier paramètre, date_début, correspond à la date initiale à partir de laquelle vous souhaitez calculer l'intervalle. Il peut s'agir d'une référence de cellule (par exemple A1), d'une date tapée directement avec la fonction DATE, ou d'une date au format texte reconnue par Excel. Le deuxième paramètre, date_fin, représente la date finale du calcul. Elle doit toujours être postérieure ou égale à la date de début. Le troisième paramètre, unité, est crucial car il détermine le type de résultat obtenu. Les six unités disponibles sont : "Y" pour les années complètes, "M" pour les mois complets, "D" pour les jours totaux, "MD" pour les jours restants après les mois complets, "YM" pour les mois restants après les années complètes, et "YD" pour les jours restants après les années complètes. Chaque unité offre une perspective différente sur l'intervalle de temps. Par exemple, entre le 15 janvier 2020 et le 20 mars 2023, vous pouvez obtenir 3 années, 35 mois, 1129 jours, ou 64 jours restants selon l'unité choisie. Important : les dates doivent être valides et la date de fin ne doit jamais être antérieure à la date de début.

start_date
Date de début
end_date
Date de fin
unit
Unité ("Y", "M", "D", "MD", "YM", "YD")

Exemples pratiques

Calcul de l'ancienneté d'un employé

=DATEDIF(DATE(2019;3;15);TODAY();"Y")

Cette formule calcule le nombre d'années complètes entre la date d'embauche et la date actuelle. L'unité "Y" retourne uniquement les années révolues, ignorant les mois et jours restants. Si un employé a été embauché le 15 mars 2019 et qu'on est le 10 mars 2024, le résultat sera 4 (et non 5), car les 5 ans ne seront complétés que le 15 mars 2024.

Durée d'un projet en mois

=DATEDIF(A2;B2;"M")

Avec A2 contenant 01/01/2024 et B2 contenant 15/09/2024, cette formule retourne 8 mois complets. L'unité "M" compte uniquement les mois entiers écoulés. Si le projet s'était terminé le 31 décembre 2024, le résultat aurait été 11 mois, car les 12 mois complets ne seraient atteints que le 1er janvier 2025.

Calcul détaillé d'âge avec années, mois et jours

=DATEDIF(C2;TODAY();"Y")&" ans, "&DATEDIF(C2;TODAY();"YM")&" mois et "&DATEDIF(C2;TODAY();"MD")&" jours"

Cette formule combine trois appels DATEDIF pour créer un affichage complet de l'âge. La première partie calcule les années avec "Y", la deuxième utilise "YM" pour obtenir les mois restants après les années complètes, et la troisième utilise "MD" pour les jours restants. Cette approche fournit une représentation précise et lisible de l'âge.

Points clés à retenir

  • DATEDIF est la fonction Excel la plus puissante pour calculer les intervalles entre deux dates avec six unités de calcul différentes (Y, M, D, MD, YM, YD).
  • Les unités "MD", "YM" et "YD" sont particulièrement utiles pour afficher les intervalles détaillés au format "X ans, Y mois, Z jours".
  • La date de fin doit toujours être postérieure ou égale à la date de début, sinon la formule retourne une erreur #NUM!.
  • DATEDIF fonctionne identiquement dans Excel, Google Sheets et LibreOffice Calc, ce qui en fait une formule universelle et portable.
  • Combinez DATEDIF avec IF, TODAY() et d'autres fonctions de date pour créer des solutions de gestion de temps robustes et automatisées.

Astuces de pro

Utilisez l'unité "MD" pour calculer les jours restants dans un mois après avoir compté les mois complets. Cela permet de créer des affichages très précis comme "2 mois et 15 jours" au lieu de "75 jours".

Impact : Améliore la clarté des rapports et facilite la compréhension des durées par les utilisateurs non-techniques.

Combinez DATEDIF avec EDATE pour projeter des dates futures. Par exemple, =DATEDIF(TODAY();EDATE(TODAY();12);"M") calcule les mois jusqu'à une date dans 12 mois.

Impact : Permet de créer des analyses de planification et de prévision sophistiquées avec des calculs de durée prospectifs.

Créez une colonne de vérification avec =IF(DATEDIF(A1;B1;"D")<0;"ALERTE";"OK") pour identifier rapidement les erreurs de saisie de dates dans vos données.

Impact : Améliore la qualité des données et permet de détecter rapidement les anomalies avant qu'elles ne causent des problèmes dans les analyses.

Utilisez DATEDIF avec MONTH et DAY pour calculer les anniversaires restants : =DATEDIF(TODAY();DATE(YEAR(TODAY())+IF(MONTH(A1)<MONTH(TODAY());1;0);MONTH(A1);DAY(A1));"D")

Impact : Utile pour les ressources humaines et la gestion d'événements, permettant de créer des rappels automatiques et des planifications d'événements.

Combinaisons utiles

DATEDIF avec IF pour valider les dates

=IF(A1>B1;"Erreur: date début > date fin";DATEDIF(A1;B1;"D"))

Cette combinaison ajoute une vérification de sécurité pour s'assurer que la date de début n'est pas postérieure à la date de fin. Si c'est le cas, elle affiche un message d'erreur explicite au lieu de générer une erreur #NUM!. Cela améliore la robustesse de vos feuilles de calcul.

DATEDIF avec TODAY pour des calculs dynamiques

=DATEDIF(DATE(YEAR(A1);MONTH(A1);DAY(A1));TODAY();"Y")

Cette formule combine DATEDIF avec TODAY() pour calculer automatiquement l'âge ou la durée par rapport à la date actuelle. Elle se met à jour automatiquement chaque jour sans intervention manuelle. Particulièrement utile pour les tableaux de bord et les rapports qui doivent rester à jour.

DATEDIF avec CONCATENATE pour un affichage formaté

=CONCATENATE(DATEDIF(A1;B1;"Y");" ans, ";DATEDIF(A1;B1;"YM");" mois, ";DATEDIF(A1;B1;"MD");" jours")

Cette combinaison crée une chaîne de texte lisible affichant l'intervalle complet au format "X ans, Y mois, Z jours". Elle est particulièrement utile pour les rapports, les documents exportés ou les affichages destinés aux utilisateurs finaux qui préfèrent un texte clair à des nombres bruts.

Erreurs courantes

#VALUE!

Cause : L'unité spécifiée n'est pas reconnue par Excel. Cela se produit généralement quand on utilise des guillemets simples au lieu de guillemets doubles, ou quand on tape une unité invalide comme "YEARS" au lieu de "Y". Exemple : =DATEDIF(A1;B1;Y) sans guillemets.

Solution : Vérifiez que l'unité est bien entre guillemets doubles et qu'elle correspond à l'une des six valeurs valides : "Y", "M", "D", "MD", "YM", ou "YD". Utilisez =DATEDIF(A1;B1;"Y") avec les guillemets corrects.

#NUM!

Cause : La date de fin est antérieure à la date de début, ce qui crée une différence négative. DATEDIF ne peut pas calculer des intervalles rétrogrades. Exemple : =DATEDIF(DATE(2024;12;25);DATE(2024;1;1);"D") où la fin est avant le début.

Solution : Inversez l'ordre des dates pour que la date de début soit toujours antérieure ou égale à la date de fin. Vous pouvez aussi ajouter une vérification avec IF : =IF(A1>B1;DATEDIF(B1;A1;"D");DATEDIF(A1;B1;"D")) pour gérer automatiquement l'ordre.

#REF!

Cause : Une des cellules référencées n'existe pas ou a été supprimée. Cela se produit notamment quand on supprime une colonne qui était utilisée dans la formule. Exemple : si A1 est supprimée mais la formule =DATEDIF(A1;B1;"D") reste dans une autre cellule.

Solution : Vérifiez que les cellules A1 et B1 existent toujours et contiennent des dates valides. Corrigez les références en utilisant les bonnes adresses de cellules. Utilisez le gestionnaire de noms ou le vérificateur de formules pour identifier les références cassées.

Checklist de dépannage

  • 1.Vérifiez que les dates sont au format date reconnu par Excel (pas du texte brut). Testez avec =ISNUMBER(A1) pour confirmer qu'Excel reconnaît la cellule comme date.
  • 2.Assurez-vous que la date de fin (deuxième paramètre) est bien postérieure ou égale à la date de début. L'ordre inverse provoque une erreur #NUM!.
  • 3.Confirmez que l'unité est entre guillemets doubles et correspond à l'une des six valeurs valides : Y, M, D, MD, YM, ou YD. Vérifiez les caractères invisibles ou les espaces.
  • 4.Testez avec des dates simples et connues (ex : entre 01/01/2020 et 01/01/2021) pour isoler les problèmes avant d'appliquer la formule à vos données réelles.
  • 5.Vérifiez que les cellules référencées n'ont pas été supprimées ou déplacées. Utilisez le vérificateur de formules (Formules > Vérifier les formules) pour identifier les références cassées.
  • 6.Si vous travaillez avec des dates importées, vérifiez qu'elles ne sont pas stockées en tant que texte. Utilisez DATEVALUE() pour convertir le texte en date si nécessaire.

Cas particuliers

Dates identiques (date_début = date_fin)

Comportement : DATEDIF retourne 0 pour toutes les unités. Par exemple, =DATEDIF(DATE(2024;1;1);DATE(2024;1;1);"D") retourne 0.

Solution : C'est le comportement attendu et correct. Aucune action requise.

Utile pour identifier les enregistrements sans durée ou les événements ponctuels.

Intervalles très courts (moins d'une unité complète)

Comportement : DATEDIF retourne 0 si l'intervalle est inférieur à l'unité spécifiée. Par exemple, 5 jours avec l'unité "M" retourne 0 (pas de mois complet).

Solution : Utilisez une unité plus petite ("D" pour les jours) ou combinez plusieurs unités pour obtenir un résultat plus précis.

Cela peut être contre-intuitif pour les utilisateurs qui s'attendent à des fractions. Utilisez YEARFRAC si vous avez besoin de précision décimale.

Années bissextiles et dates limites (29 février)

Comportement : DATEDIF gère correctement les années bissextiles. Entre le 29 février 2020 et le 28 février 2021, le résultat avec "Y" est 0 (pas d'année complète), mais avec "D" c'est 365 jours.

Excel gère automatiquement cette complexité. Aucune compensation manuelle n'est nécessaire.

Limitations

  • DATEDIF ne supporte que les unités de temps à partir du jour (D). Il est impossible de calculer directement les heures, minutes ou secondes. Pour ces besoins, utilisez la soustraction directe : =(date_fin-date_début)*24 pour les heures.
  • La fonction génère une erreur #NUM! si la date de fin est antérieure à la date de début. Contrairement à d'autres logiciels, il n'existe pas de paramètre pour gérer automatiquement l'ordre des dates.
  • DATEDIF ne fonctionne pas avec des heures ou des timestamps. Les heures sont ignorées et seules les dates sont considérées. Si vous avez besoin de précision à la seconde, utilisez une approche différente.
  • La documentation officielle de DATEDIF est limitée dans Excel, ce qui peut rendre son utilisation confuse pour les débutants. Les unités "MD", "YM" et "YD" en particulier sont peu intuitives sans explication détaillée.

Alternatives

Calcule uniquement la différence en jours de manière simple et directe. Syntaxe plus courte : =DAYS(date_fin;date_début)

Quand : Idéale quand vous avez besoin uniquement du nombre de jours entre deux dates, sans besoin de conversion en années ou mois. Plus rapide à taper que DATEDIF pour ce cas spécifique.

Approche simple : =(date_fin-date_début) retourne directement le nombre de jours. Peut être formatée comme date si nécessaire.

Quand : Utile pour des calculs rapides quand vous travaillez déjà avec des dates en tant que nombres. Moins flexible que DATEDIF pour les conversions en années/mois.

Calcule la fraction d'année entre deux dates avec précision décimale. Utile pour les calculs financiers et d'intérêts.

Quand : Particulièrement adaptée aux calculs actuariels et financiers où vous avez besoin d'une année fractionnelle (ex : 2,5 ans) plutôt que d'années entières.

Compatibilité

Excel

Depuis Excel 2007

=DATEDIF(date_début;date_fin;unité) - Identique dans toutes les versions modernes (2007, 2010, 2013, 2016, 2019, 365)

Google Sheets

=DATEDIF(date_début;date_fin;unité) - Syntaxe identique, utilise le séparateur point-virgule ou virgule selon les paramètres régionaux

Fonctionne parfaitement dans Google Sheets bien que moins documentée officiellement. Les six unités sont toutes supportées.

LibreOffice

=DATEDIF(date_début;date_fin;unité) - Syntaxe identique avec point-virgule comme séparateur de paramètres

Questions fréquentes

Maîtrisez DATEDIF et optimisez vos calculs de dates avec ElyxAI, votre assistant Excel intelligent. Découvrez d'autres formules essentielles et améliorez votre productivité avec nos guides pratiques et nos outils d'apprentissage interactifs.

Explorer Date et heure

Formules connexes