Calcul de durée entre 2 dates
Résolu/Fermé
A voir également:
- Excel calcul durée entre deux dates et heures
- Liste déroulante excel - Guide
- Calcul moyenne excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Formule excel - Guide
4 réponses
redaiwa
Messages postés
351
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
25 janvier 2024
119
16 mars 2015 à 14:54
16 mars 2015 à 14:54
Salam Adm82.
Tu trouveras la solution ici : https://forums.commentcamarche.net/forum/affich-37636597-difference-entre-dates-avec-la-fonction-datedif
Bon après-midi.
Tu trouveras la solution ici : https://forums.commentcamarche.net/forum/affich-37636597-difference-entre-dates-avec-la-fonction-datedif
Bon après-midi.
Mike-31
Messages postés
18318
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
5 076
16 mars 2015 à 14:20
16 mars 2015 à 14:20
Bonjour,
avec simplement la date de départ en A1, la formule traite le pluriel des années et jours et décompte entre la date et Aujourd'hui
=SUPPRESPACE(SI(AUJOURDHUI()-A1;TEXTE(DATEDIF(A1;AUJOURDHUI();"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(A1;AUJOURDHUI();"ym");"[>]0"" mois "";")&SI(AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))>1;AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))&" jours";SI(AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))=1;AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))&" jour";""))))
il est possible d'alléger la formule en supprimant la prise en compte des pluriels et si tu veux décompter entre A1 et B1 remplace dans la formule AUJOURDHUI() par B1
avec simplement la date de départ en A1, la formule traite le pluriel des années et jours et décompte entre la date et Aujourd'hui
=SUPPRESPACE(SI(AUJOURDHUI()-A1;TEXTE(DATEDIF(A1;AUJOURDHUI();"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(A1;AUJOURDHUI();"ym");"[>]0"" mois "";")&SI(AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))>1;AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))&" jours";SI(AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))=1;AUJOURDHUI()-MOIS.DECALER(A1;DATEDIF(A1;AUJOURDHUI();"m"))&" jour";""))))
il est possible d'alléger la formule en supprimant la prise en compte des pluriels et si tu veux décompter entre A1 et B1 remplace dans la formule AUJOURDHUI() par B1
Mike-31
Messages postés
18318
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
5 076
18 mars 2015 à 22:14
18 mars 2015 à 22:14
Salut Redaiwa,
oui je suis d'accord et c'est bien la syntaxe DATEDIF que j'ai également utilisé avec un aménagement du code pour n'afficher que les données positives et gérer le pluriel des ans et jours
si le résultat obtenu, si en A1 tu as 18/3/2014 et en B1 18/3/2015 le résultat est 1 an et ma formule affiche 1 an, ta formule affiche 1 an(s) 0 mois et 0 jour(s)
si en A1 tu as 18/3/2013 et en B1 19/3/2015 ma formule affichera 2 ans 1 jour en mettant au pluriel "an" et jour au singulier alors que ta formule épurée affichera 2 an(s) 0 mois et 1 jour(s)
dans ce cas tu peux compléter ta proposition comme cela
=SI(B1-A1;TEXTE(DATEDIF(A1;B1;"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(A1;B1;"ym");"[>]0"" mois "";")&SI(B1-A1;TEXTE(DATEDIF(A1;B1;"md");"[>1]0"" jours "";[>]""1 jour "";")))
et j'ajouterai une conditionnelle en tête pour tester les cellules A1 et B1 afin d'éviter un calcul depuis le 1/1/1900 dans le cas de cellule A1 vide ou un message d'erreur si B1 ou A1 et B1 sont vide
oui je suis d'accord et c'est bien la syntaxe DATEDIF que j'ai également utilisé avec un aménagement du code pour n'afficher que les données positives et gérer le pluriel des ans et jours
si le résultat obtenu, si en A1 tu as 18/3/2014 et en B1 18/3/2015 le résultat est 1 an et ma formule affiche 1 an, ta formule affiche 1 an(s) 0 mois et 0 jour(s)
si en A1 tu as 18/3/2013 et en B1 19/3/2015 ma formule affichera 2 ans 1 jour en mettant au pluriel "an" et jour au singulier alors que ta formule épurée affichera 2 an(s) 0 mois et 1 jour(s)
dans ce cas tu peux compléter ta proposition comme cela
=SI(B1-A1;TEXTE(DATEDIF(A1;B1;"y");"[>1]0"" ans "";[>]""1 an "";")&TEXTE(DATEDIF(A1;B1;"ym");"[>]0"" mois "";")&SI(B1-A1;TEXTE(DATEDIF(A1;B1;"md");"[>1]0"" jours "";[>]""1 jour "";")))
et j'ajouterai une conditionnelle en tête pour tester les cellules A1 et B1 afin d'éviter un calcul depuis le 1/1/1900 dans le cas de cellule A1 vide ou un message d'erreur si B1 ou A1 et B1 sont vide
redaiwa
Messages postés
351
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
25 janvier 2024
119
19 mars 2015 à 09:27
19 mars 2015 à 09:27
Salam Mike.
Juste pour te dire que tes contributions sont vraiment enrichissantes.
Tu apportes souvent la cerise qui manque au gâteau :)
Bonne journée.
Juste pour te dire que tes contributions sont vraiment enrichissantes.
Tu apportes souvent la cerise qui manque au gâteau :)
Bonne journée.
Mike-31
Messages postés
18318
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 avril 2024
5 076
19 mars 2015 à 10:46
19 mars 2015 à 10:46
Salut,
C'est ça l'intérêt d'un forum, une mine de connaissance, un lieu d'échange qui doit rester convivial.
Cordialement
Mike-31
C'est ça l'intérêt d'un forum, une mine de connaissance, un lieu d'échange qui doit rester convivial.
Cordialement
Mike-31
Modifié par Mike-31 le 16/03/2015 à 15:07
tu arrives avec un temps de retard et la demande était plus complexe avec une affichage "obtenir 2 ans 1 mois 1 jour"
bonne après midi
18 mars 2015 à 10:18
https://www.generiquestele.com/Ulysse_31
Effectivement, je prend parfois beaucoup de temps à chercher des réponses à des questions qui sont entre-temps résolues sans que je ne le saches...
Mais concernant cette question, je confirme que la fonction DATEDIF() répond parfaitement à la demande de Adm82.
Bonne journée. :)