Afficher le Nb de mois entre deux dates, qui changent

[Résolu/Fermé]
Signaler
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
Bonjour,

Je travaille sur un tableau Excel qui devrait me donner le nombre de mois entre deux dates, pour chaque année calendaire, comprise entre la date de début et la date de fin.
Mais les dates peuvent s'étaler sur trois années calendaires.

J'explique:

Colonne A: date de début qui peut se situer en 2013, 2014, 2015... sous forme jj/mm/aa
Colonne B: Date de fin qui peut se situer en 2013, 2014, 2015... sous forme jj/mm/aa
A: peut être: 1/01/13 et B peut être 31/05/14 par ex.

Colonne C: Nombre de mois en 2013, compris entre la date de début et la date de fin, ou la fin de l'année si l'année de la date de fin est supérieure à celle du début.
par ex: Début= 1/08/13 et fin = 31/03/14

Colonne D idem que C mais pour 2014
ici j'ai tenté: =SI(ANNEE(A1)=2014;SI(ANNEE(B1)=2014;MOIS(B1)-MOIS(A1)+1;"");SI(ANNEE(A1)=2013;SI(ANNEE(B1)=2014;MOIS(B1)-MOIS(01/01/2014)+1;"").
Jusque là la formule semble fonctionner, mais il me manque la troisième condition, et quand je la rajoute, il me dit "faux"...
La troisième condition étant: SI(ANNEE(A1)=2013;SI(ANNEE(B1)=2015;MOIS(31/12/2014)-MOIS(1/01/2014)+1;"")

Colonne E Idem que C et D mais pour 2015 avec toutes les variantes possibles pour la date de début (2013, 2014, 2015... et la date de fin)

Les "faux" qui s'affichent lorsque les valeurs sortent de la plage de calcul de la formule, je n'arrive pas à les supprimer non plus...

Si quelqu'un pouvait m'aider à résoudre cette équation ce serait sympa. merci d'avance...

Cordialement

7 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour,

Regardes cette fonction qui devrait résoudre ton problème.
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Merci gbinforme,

Mais déja tenté sans plus de succès. en fait la difficulté est liée au fait qu'il me faut le nombre de mois de l'année correspondant à ma colonne (2013, 2014, 2015...), alors que la date de début peut être différente de un a deux ans par rapport à la date de fin.

mais merci quand même
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour,

Tu as tenté mais tu n'as peut-être pas tout essayé car il me semble que c'est possible avec cette fonction.

Je te mets ce classeur test avec tes dates et quelques autres :

https://www.cjoint.com/c/CHCwriiCyLo
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Effectivement cjoint a ce soir un souci, il faut du temps pour avoir une réponse, mais j'ai réussi à poster.
Il me semble que c'est bien ainsi que j'ai compris, "Début= 1/08/13 et fin = 31/03/15" donne 5 mois en 2013, 12 en 2014 et 3 en 2015, n'est-ce pas ?
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Oui c'est bien ça! Mais les dates peuvent aussi bien être début 1/01/13 et fin 31/01/13 par ex. donc en 2013 il me faut 1 en 2014 et 2015 0, alors que dans tous mes essais très compliqués je l'admets, suis pas un pro... il me met "FAUX" dès que les dates sortent des valeurs de la formule, et pas moyen de faire mieux... je rame dpuis un moment, alors que je suis sûr que la solution existe... en tous cas, merci à toi... Je verrai demain si le lien fonctionne pour récupérer ton document. Bonne soirée et encore merci...
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Pour tenir compte des fin de mois et avec un libellé plus explicite :

https://www.cjoint.com/c/CHCxtnx9efm
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

J'ai réussi à charger ton classeur. Il m'a transformé les formules et affiche une valeur #NOM?
Le début de la formule se présente de cette façon sur le classeur:
=_xlfn.IFFERROR(DATEDIF(MAX...
Je n'ai pas trouvé par quoi remplacer le =_xlfn... j'ai bien essayé =DIFFERROR(MAX(....
Mais il m'affiche toujours #NOM?
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Bien reçu le second classeur, avec les chiffres. C'est bien ce que je cherche, mais la formule ne fonctionne pas chez moi, dès que je change une date sur ton classeur, il me remet un message #NOM?. Je me demande si ma version excel encaisse cette formule???
En tous cas, ta formule répond bien à ma demande... Merci infiniment de tes réponses... je avis tâcher de voir avec une autre version excel à tout hasard...
Bonne nuit et merci encore...
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour,

Sans doute que tu es en 2003 alors voilà la formule pour la version 2003 :

https://www.cjoint.com/c/CHDjxhBW0Rx

La précédente, plus simple, nécessite 2007 au moins.
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Bonjour gbinforme,

Excellent!!! ça roule du tonnerre... J'ai effectivement une version 2004, d'où le soucis hier soir...
En tous cas, merci infiniment pour ta patience avec moi et ton efficacité...
Pas de regrets de m'être inscrit sur ce forum...

Je pense que j'aurai d'autres équations à te soumettre, car je cherche à rationaliser nos outils, et pas facile quand on ne maitrise pas les formules...
je suis donc amené à de joyeux "bricolages" avec des formules lourdes et complexes, là où vous autres trouves des formules simples et efficaces...
Je te souhaite une excellente journée et te remercie encore...
Cdlt.
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Re,
Je suis en train d'essayer de comprendre ta formule, alors je teste... Du coup je me rends compte que j'ai oublié un détail. Dans mes dates de début il y en a aussi qui commencent le 16 et donc celles de fin sont le 15 du mois. Dans ces cas là, la formule ne me compte pas le mois, alors que pour moi j'ai besoin qu'elle me le compte.
J'espère que je n'abuse pas... mais je n'ai pas encore compris la formule dans le détail...
Merci d'avance.

Bien cordialement
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour,

J'étais absent et je reprend mais je ne comprend pas :
Dans mes dates de début il y en a aussi qui commencent le 16 et donc celles de fin sont le 15 du mois. Dans ces cas là, la formule ne me compte pas le mois, alors que pour moi j'ai besoin qu'elle me le compte.
Si tu as 15/01/2013 et 15/02/2013 cela affiche bien 1 mois en 2013 ?

La formule de base prends comme
- date d'entrée le 31 décembre précédent ou la date réelle si dans l'année
- date de sortie le 1er janvier suivant ou la date réelle +1 si dans l'année

DATEDIF(MAX($A2;DATE(C$1-1;12;31));MIN($B2+1;DATE(C$1+1;1;1));"m")
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Bonjour,
En fait ce sont des "présences" dont j'ai besoin pour mon tableau.
Donc le 16/01/13 et 15/02/13 doivent me donner 2.

Mais peut être que depuis le départ je me complique la vie. Il existe peut être un moyen pour me donner le résultat final que j'essaye d'obtenir sans passer par la "nombre de mois"...
J'explique la finalité de mon tableau que je voudrais construire.

A partir de la date de départ et la date de fin, j'ai besoin d'avoir dans une colonne les mois de présence de la personne pour chaque année comprise entre les deux dates.

Ex: Du 16/01/13 au 15/01/14 dans la colonne C pour 2013 j'ai besoin d'identifier les 12 mois de l'année, et en colonne D, il me faudra le mois de janvier pour 2014, et ainsi de suite...
L'objectif étant de pouvoir filtrer les mois et avoir les effectifs présents le mois filtré.

1 étant Janvier, 2 février...
Je sais pas si c'est clair... lol
Peut-être plus facile d'insérer des conditions sur les jours dans cette formule:

=SI(ANNEE($B2)<C1;0;(SI(ANNEE($B2)=C1;(SI(ANNEE($A2)=ANNEE($B2);MOIS($B2)-MOIS($A2);MOIS($B2)));(SI(ANNEE($B2)>C1;(SI(ANNEE($A2)=C1;13-MOIS($A2);(SI(ANNEE($A2)<C1;12;0)))))))))
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Bonsoir,

Merci pour cette autre piste, mais je pense que j'aurais mieux fait de préciser dès le départ mon objectif final, ça aurait été plus simple pour tout le monde. Mais j'avais une idée de traitement de mes besoins, et du coup ça complique la vie à tout le monde je pense... Je viens de redéfinir mon besoin final sur la réponse de gbinforme... En tous cas, merci à toi navigo pour ta propositiopn que je note et qui me servira probablement par ailleurs... vous êtes cool ici... merci beaucoup...
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour,

Je travaille sur un tableau Excel qui devrait me donner le nombre de mois entre deux dates

L'objectif étant de pouvoir filtrer les mois et avoir les effectifs présents le mois filtré.

Effectivement la façon de réaliser le souhait est différente !
Je te propose ceci avec 2 solutions : filtre et mensuel global

https://www.cjoint.com/c/CHFjQWtenQp
Messages postés
66
Date d'inscription
mercredi 28 août 2013
Statut
Membre
Dernière intervention
7 mai 2015

Bonjour gbinforme,
Magnifique boulot, c'est absolument ce à quoi je voulais arriver...
Tu fais ça avec une simplicité... alors que moi je dois mettre en place des cellules cachées, qui vont me servir par la suite...
Là c'est net et sans bavure... En plus la formule est compréhensible pour moi, donc génial... :)
Pour info, c'est la version "global" qui me convient le mieux, car j'ai besoin de filtrer sur le mois, et n'avoir à l'écran pour impression que les personnes présentes le mois filtré.
Mais je garde les deux, lol l'autre pourra me servir par ailleurs je pense.
Merci infiniment... Vraiment sans toi je ramais pendant je ne sais combien de temps encore.
A très bientôt....
Crdialement
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour excelmann,

Merci de ton sympathique message.

J'ai mis les 2 solutions et tu choisis celle qui te convient le mieux :)

alors que moi je dois mettre en place des cellules cachées

C'est vrai que c'est la tentation première mais souvent, il y a des fonctions utiles pour éviter les complications et une formule élaborée est plus performante que plusieurs fonctions, même simples. Mais tout le monde a débuté avec ces procédés...

Bonne utilisation et à bientôt peut-être ;-)