Formule Excel: obtenir les jours, les mois et les années entre les dates -

Table des matières

Formule générique

=DATEDIF(start,end,"y") &" years,"&DATEDIF(start,end,"ym") &" months," &DATEDIF(start,end,"md") &" days"

Sommaire

Pour calculer et afficher le temps entre les dates en jours, mois et années, vous pouvez utiliser la formule a basée sur la fonction DATEDIF.

Dans l'exemple illustré, la formule en D6 est:

=DATEDIF(B6,C6,"y") &" years,"&DATEDIF(B6,C6,"ym") &" months," &DATEDIF(B6,C6,"md") &" days"

où les dates de début sont dans la colonne B et les dates de fin dans la colonne C.

Explication

La fonction DATEDIF est conçue pour calculer la différence entre les dates en années, mois et jours. Il existe plusieurs variantes disponibles (par exemple le temps en mois, le temps en mois sans tenir compte des jours et des années, etc.) et celles-ci sont définies par l'argument "unité" dans la fonction. Voir cette page sur la fonction DATEDIF pour une liste complète des unités disponibles.

Dans l'exemple illustré, nous calculons les années, les mois et les jours séparément, puis nous «collons» les résultats avec la concaténation. Pour obtenir des années entières, nous utilisons:

DATEDIF(B6,C6,"y")&" years,"

Pour obtenir des mois entiers, nous utilisons:

DATEDIF(B6,C6,"ym")&" months,"

Et nous calculons les jours avec:

DATEDIF(B6,C6,"md")&" days"

Le reste de la formule est simplement le texte requis joint avec l'opérateur de concaténation (&).

Sans valeurs nulles

Pour empêcher la sortie de jours, mois ou années avec des valeurs nulles, vous pouvez encapsuler chaque fonction DATEDIF dans IF, comme indiqué ici (sauts de ligne ajoutés pour plus de lisibilité):

= IF(DATEDIF(B6,C6,"y"), DATEDIF(B6,C6,"y")&"yr ","")& IF(DATEDIF(B6,C6,"ym"), DATEDIF(B6,C6,"ym")&" mo ","")& IF(DATEDIF(B6,C6,"md"), DATEDIF(B6,C6,"md") &" dy","")

Pour éviter que des virgules supplémentaires n'apparaissent dans le résultat final, les virgules ont été remplacées par des espaces. L'utilisation de la formule DATEDIF d'origine comme «test logique» dans IF fonctionne car IF traite tout résultat différent de zéro comme vrai.

Bons liens

Article détaillé sur DATEDIF (Ablebits)

Articles intéressants...