Calcul entre deux dates sur Excel
danielc0 Messages postés 2229 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je voudrais calculer la date qui me reste entre le moment ou j'ai un cours de musique et sa date de validité, généralement un an
Dans mon ex la date d'achat est le 08 01 2025 en cellule D4 et sa date de validité en cellule G4
Merci pour le renseignement
Je vous souhaite à tous une très belle année 2025 et vous présente mes meilleurs Voeux
Cordialement
8 réponses
-
Bonjour,
Pour avoir le nombre de jours entre les deux dates :
=G4-D4
Pour avoir l'intervalle en années / mois / Jours :
=DATEDIF(D4;G4;"y")&" an(s), "&DATEDIF(D4;G4;"ym")&" mois, "&DATEDIF(D4;G4;"md")&" jour(s)"
Daniel
-
Bonjour à tous,
Que faut-il comprendre dans l'énoncé de la question ?
Je comprends deux choses :
1/ l'affichage de la date de validité en fonction d'un délai prévu ?
Dans ce cas la fonction MOIS.DECALER(date départ;nombre de mois)-1 est suffisante.
2/ le temps qu'il reste avant la fin de validité en fonction du jour en cours.
Dans ce cas mettre =AUJOURDHUI() ""en A1 par exemple"" et calculer le temps restant jusqu'à la date calculée en G4 avec la formule :
=SI(D4<>"";SI(DATEDIF($A$1;G4;"y")>0;DATEDIF($A$1;G4;"y")&SI(DATEDIF($A$1;G4;"y")>1;" ans ";" an ");"")&SI(DATEDIF($A$1;G4;"ym")>0;DATEDIF($A$1;G4;"ym")&" mois ";"")&SI(DATEDIF($A$1;G4;"md")>0;DATEDIF($A$1;G4;"md") & SI(DATEDIF($A$1;G4;"md")>1;" jours";" jour");"");"")
https://www.cjoint.com/c/OAmm1fJeXhz
Cordialement
-
Bonjour à tous,
.
Puisque ce sujet n'a pas été mis en résolu j'ajoute une transformation de cette formule avec la fonction LET()
.
Avec la date de début en A2 et la date de fin en B2
.
=LET(
Total_An;DATEDIF(A2;B2;"y");
Total_Mois;DATEDIF(A2;B2;"ym");
Total_Jour;DATEDIF(A2;B2;"md");
SI(Total_An>0;Total_An&SI(Total_An>1;" ans ";" an ");"")
&
SI(Total_Mois>0;Total_Mois&" mois ";"")
&
SI(Total_Jour>0;Total_Jour&SI(Total_Jour>1;" jours";" jour") ;"")).
Cordialement
Bonjour,
Juste une petite alerte, concernant l'unité "md" de "DATEDIF"
µSoft le signale d'ailleurs, cette utilisation peut engendrer des erreurs, et propose une solution de contournement.
Pour t'en rendre compte, date1 : 30/11/2023, date2 : 01/03/2024.
en utilisant ta fonction (et toute autre utilisant l'unité "md"), on obtient 3 mois pile
Le résultat exact est de 3 mois et 1 jour
Autre exemple, date1 : 29/08/2017, date2 : 12/03/2019
Datedif exclusivement donne 1 an 6 mois et 11 jours
Avec contournement : 1 an 6 mois et 12 jours
Une solution donnée par Jean-Eric sur un autre forum
=LET( start; A3; end; B3; y; DATEDIF(start; end; "y"); m; DATEDIF(start; end; "ym"); d; end - MOIS.DECALER(start; 12 * y + m); v; ASSEMB.V(y; m; d); r; JOINDRE.TEXTE(" ";; SI.CONDITIONS( v = 0; {"";"";""}; v = 1; 1 & {" an";" mois";" jour"}; v > 1; v & {" ans";" mois";" jours"}));r)Bonne journée
Bonjour,
En dehors des bugs pouvant exister avec DATEDIF et c'est dommage, son utilisation conduit toujours à une différence.
Si A1=01/08/26 B1=24/08/26
DATEDIF(A1;B1;"d") rend 23 qui est la différence entre les 2 jours.
Si je veux le nombre de jours écoulés entre les deux dates je dois écrire
DATEDIF(A1;B1;"d")+1
-
-
... Donc pour être exact dans tous les cas :
=LET(dat;ASSEMB.V(DATEDIF(A2;B2;{"y";"ym"});B2-DATE(ANNEE(B2);MOIS(B2);1));tab;ASSEMB.H(dat;{" an";" mois";" jour"};SI(dat>1;"s, ";", "));TEXTE.AVANT(SUBSTITUE(CONCAT(tab);"ss";"s");",";3))Daniel
-
Bonjour
Une solution exemple en B2
=G4-D4
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci Daniel
Cette formule fonctionne super bien
Sauf pour une ligne, je ne sais pourquoi
Très bonne journée
Cordialemet
Patoche
-
Bonsoir
Merci de votre réponse
Moi ma date d'achat est en D7 et ma date de validité en G7
Je ne comprends pas d’où viens le D4 après le premier Si et le A1 je le comprends mais pas le G4
Désolé
Bonne fin de soirée à vous
Cordialement
-
Re/--
Tu ne comprends pas D4 et G4 dans nos formules. Et bien retourne voir dans ta question initiale, c'est toi qui a donné ces références !!
D4 c'est ta date de départ et G4 c'est la date de fin de validité.
Puisque tu changes ces référence par D7 et G7, fais la rectification dans les formules qu'on t'as données.
Ma formule est longue, je te l'accorde.
En plus de donner le décompte du temps elle est utile pour tenir compte du singulier et pluriel en ce qui concerne les années et les jours et ne pas inscrire le calcul si l'un d'eux donne 0.
Le D4 au premier SI est là pour indiquer que cette cellule doit obligatoirement être remplie sinon la formule donne l'erreur #NOMBRE!. Le SI(D4<>""; peut se remplacer par SIERREUR(
Cordialement
-
Bonjour à tous,
Une autre solution :
=LET(dat;DATEDIF(A2;B2;{"y";"ym";"md"});tab;ASSEMB.H(dat;{" an";" mois";" jour"};SI(dat>1;"s, ";", "));TEXTE.AVANT(SUBSTITUE(CONCAT(tab);"ss";"s");",";3))Daniel

