Calculer le nb de mois entiers entre 2 dates
Fermé
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
26 déc. 2013 à 12:30
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 27 déc. 2013 à 16:28
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 27 déc. 2013 à 16:28
A voir également:
- Calculer le nb de mois entiers entre 2 dates
- Comment calculer la moyenne sur excel - Guide
- Word numéro de page 1/2 - Guide
- Nb si en anglais - Guide
- 2 ecran pc - Guide
- Gto saison 2 - Forum Cinéma / Télé
8 réponses
.Grincheux.
Messages postés
211
Date d'inscription
vendredi 10 mai 2013
Statut
Membre
Dernière intervention
22 octobre 2016
84
26 déc. 2013 à 13:52
26 déc. 2013 à 13:52
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
1262
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
575
26 déc. 2013 à 13:20
26 déc. 2013 à 13:20
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.
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
26 déc. 2013 à 15:16
26 déc. 2013 à 15:16
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
g
Messages postés
1262
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
575
27 déc. 2013 à 10:08
27 déc. 2013 à 10:08
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
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
Modifié par Mouftie le 27/12/2013 à 11:56
Modifié par Mouftie le 27/12/2013 à 11:56
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
g
Messages postés
1262
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
575
27 déc. 2013 à 13:36
27 déc. 2013 à 13:36
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.
Mouftie
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
15
27 déc. 2013 à 14:52
27 déc. 2013 à 14:52
Re,
Il y a toujours une erreur, car j'ai des réponses supérieures à 31...
Je pense avoir trouvé une solution
est-ce que cela vous paraît correct ?
Il y a toujours une erreur, car j'ai des réponses supérieures à 31...
Je pense avoir trouvé une solution
=SI(MOIS(D1)=MOIS(D2);JOUR(D2)-JOUR(D1);SI(JOUR(D1)>1;JOUR(D1);0)+SI(FIN.MOIS(D2;0)=D2;0;JOUR(D2)))
est-ce que cela vous paraît correct ?
g
Messages postés
1262
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
575
27 déc. 2013 à 16:17
27 déc. 2013 à 16:17
Oui, c'est tout bon, c'était juste une adaptation de rangée.
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
27 déc. 2013 à 16:28
27 déc. 2013 à 16:28
Bonjour le fil,
date Min en A1 et Date Max en A3
à tester
=(MOIS(DATE(ANNEE(A3);MOIS(A3);1)-1)+1)-(MOIS(DATE(ANNEE(A1);MOIS(A1)+1;0)+1))
date Min en A1 et Date Max en A3
à tester
=(MOIS(DATE(ANNEE(A3);MOIS(A3);1)-1)+1)-(MOIS(DATE(ANNEE(A1);MOIS(A1)+1;0)+1))
26 déc. 2013 à 14:10