Calculer le nb de mois entiers entre 2 dates
Mouftie
Messages postés
215
Date d'inscription
Statut
Membre
Dernière intervention
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je cherche à calculer le nb de mois entiers entre 2 dates.
Je ne peux pas utiliser la formule DateDif ex :
D1 = 02/03/2013 et D2 = 30/08/2013 : DateDif(D1;D2;"M") = 5
or les mois entiers sont 04;05;06 donc 3 mois et non 5
ou encore
D1=01/03/2013 et D2=31/08/2013 : DateDif(D1;D2;"M") = 5
or les mois entiers sont 03;04;05;06;07;08 donc 6 mois et non 5
Merci pour votre aide
Je cherche à calculer le nb de mois entiers entre 2 dates.
Je ne peux pas utiliser la formule DateDif ex :
D1 = 02/03/2013 et D2 = 30/08/2013 : DateDif(D1;D2;"M") = 5
or les mois entiers sont 04;05;06 donc 3 mois et non 5
ou encore
D1=01/03/2013 et D2=31/08/2013 : DateDif(D1;D2;"M") = 5
or les mois entiers sont 03;04;05;06;07;08 donc 6 mois et non 5
Merci pour votre aide
A voir également:
- Calculer le nb de mois entiers entre 2 dates
- Nombre de jours entre deux dates excel - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Comment calculer la moyenne sur excel - Guide
- Youtube premium 2 mois gratuit - Accueil - TV & Vidéo
- Nb si en anglais - Guide
8 réponses
Bonjour,
Pour compléter la formule de "g" qui renvoie -1 dans le cas où les deux dates sont sur le même mois (ex : 14/01 et 18/01), je propose d'ajouter la formule MAX :
=MAX(0;MOIS(D2)-MOIS(D1)+1-SI(JOUR(D1)>1;1;0)-SI(FIN.MOIS(D2;0)>D2;1;0))
Par ailleurs, il peut être intéressant de prendre en compte les années.
Cette formule devrait fonctionner dans tous les cas :
=MAX(0;(ANNEE(D2+1)-ANNEE(D1-1))*12+MOIS(D2+1)-MOIS(D1-1)-1)
Bonne journée !
Pour compléter la formule de "g" qui renvoie -1 dans le cas où les deux dates sont sur le même mois (ex : 14/01 et 18/01), je propose d'ajouter la formule MAX :
=MAX(0;MOIS(D2)-MOIS(D1)+1-SI(JOUR(D1)>1;1;0)-SI(FIN.MOIS(D2;0)>D2;1;0))
Par ailleurs, il peut être intéressant de prendre en compte les années.
Cette formule devrait fonctionner dans tous les cas :
=MAX(0;(ANNEE(D2+1)-ANNEE(D1-1))*12+MOIS(D2+1)-MOIS(D1-1)-1)
Bonne journée !
g
Messages postés
1265
Date d'inscription
Statut
Membre
Dernière intervention
577
Comme ma formule renvoie -1, je te mets +1 :-))
Bonjour,
=MOIS(D2)-MOIS(D1)+1-SI(JOUR(D1)>1;1;0)-SI(FIN.MOIS(D2;0)>D2;1;0)
A noter que du 02/03/2013 au 30/08/2013 il y a 4 mois entiers et non 3.
Cordialement.
=MOIS(D2)-MOIS(D1)+1-SI(JOUR(D1)>1;1;0)-SI(FIN.MOIS(D2;0)>D2;1;0)
A noter que du 02/03/2013 au 30/08/2013 il y a 4 mois entiers et non 3.
Cordialement.
Bonjour et merci à vous deux.
La formule de g semble fonctionner dans tous les cas (même sur un même mois) ; elle donne les mêmes résultats que celle de Grincheux (=MAX(0;MOIS(D2)-MOIS(D1)+1-SI(JOUR(D1)>1;1;0)-SI(FIN.MOIS(D2;0)>D2;1;0))
Effectivement, la formule avec les années peut-être intéressante.
Maintenant, je bute sur une autre formule, qui doit calculer le nb de jours entre 2 dates, sauf s'il s'agit d'un mois entier.
Je ne peux toujours pas utiliser la formule DateDif ex :
D1 = 01/03/2013 et D2 = 01/09/2013 : DateDif(D1;D2;"MD") = 0
or mars est entier et je voudrais avoir un résultat de 1
Ou encore
D1=01/03/2013 et D2=31/08/2013 : DateDif(D1;D2;"M") = 30
or les mois sont entiers, je voudrais un résultat à 0
Je ne maîtrise pas du tout "SI(FIN.MOIS(D2;0)>D2" ; je ne vois pas comment l'aménager ici
Encire merci beaucoup
La formule de g semble fonctionner dans tous les cas (même sur un même mois) ; elle donne les mêmes résultats que celle de Grincheux (=MAX(0;MOIS(D2)-MOIS(D1)+1-SI(JOUR(D1)>1;1;0)-SI(FIN.MOIS(D2;0)>D2;1;0))
Effectivement, la formule avec les années peut-être intéressante.
Maintenant, je bute sur une autre formule, qui doit calculer le nb de jours entre 2 dates, sauf s'il s'agit d'un mois entier.
Je ne peux toujours pas utiliser la formule DateDif ex :
D1 = 01/03/2013 et D2 = 01/09/2013 : DateDif(D1;D2;"MD") = 0
or mars est entier et je voudrais avoir un résultat de 1
Ou encore
D1=01/03/2013 et D2=31/08/2013 : DateDif(D1;D2;"M") = 30
or les mois sont entiers, je voudrais un résultat à 0
Je ne maîtrise pas du tout "SI(FIN.MOIS(D2;0)>D2" ; je ne vois pas comment l'aménager ici
Encire merci beaucoup
Bonjour,
Il y a peut être plus simple, mais cela doit tout de même fonctionner:
=SI(MOIS(D5)=MOIS(D6);SI(JOUR(FIN.MOIS(D6;0))=JOUR(D6);0;1);SI(JOUR(D5)>1;1;0)+SI(FIN.MOIS(D6;0)=D6;0;1))
Cordialement.
Il y a peut être plus simple, mais cela doit tout de même fonctionner:
=SI(MOIS(D5)=MOIS(D6);SI(JOUR(FIN.MOIS(D6;0))=JOUR(D6);0;1);SI(JOUR(D5)>1;1;0)+SI(FIN.MOIS(D6;0)=D6;0;1))
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour G,
Merci pour votre réponse, mais il y a une erreur dans la formule, il doit manquer la soustraction des jours entre D2 et D1
je joins un fichier test
https://www.cjoint.com/13dc/CLBlWpJdBhZ_datedif.xlsx
Merci pour votre réponse, mais il y a une erreur dans la formule, il doit manquer la soustraction des jours entre D2 et D1
je joins un fichier test
https://www.cjoint.com/13dc/CLBlWpJdBhZ_datedif.xlsx
Re,
Il y a effectivement erreur, je me suis basé sur les mois et non sur les jours.
Alors peut être ceci:
=SI(MOIS(D5)=MOIS(D6);JOUR(D6)-JOUR(D5);SI(JOUR(D5)>1;JOUR(D5);0)+SI(FIN.MOIS(D6;0)=D6;0;JOUR(D6)))
Cordialement.
Il y a effectivement erreur, je me suis basé sur les mois et non sur les jours.
Alors peut être ceci:
=SI(MOIS(D5)=MOIS(D6);JOUR(D6)-JOUR(D5);SI(JOUR(D5)>1;JOUR(D5);0)+SI(FIN.MOIS(D6;0)=D6;0;JOUR(D6)))
Cordialement.