Nombre de mois complets

andré

XLDnaute Barbatruc
Salut,

Je cherche à compter, par formule et sans faire usage des macros complémentaires de l’utilitaire d’analyse, le nombre de mois complets de date à date.
Par mois complet il faut entendre du premier au dernier jour d’un mois.

Quelques exemples seront plus explicites (de A1 à C8).
01/09/05 28/02/06 6
02/09/05 28/02/06 5
01/09/05 27/02/06 5
02/09/05 27/02/06 4
30/09/05 02/02/06 4
01/09/05 29/09/05 0
02/09/05 30/09/05 0
01/09/05 30/09/05 1

La formule :
=MAX(0;MOD(MOIS(B1)-MOIS(A1);12)-1+(JOUR(A1)=1)+(DATE(ANNEE(B1);MOIS(B1)+1;0)=B1))
semble renvoyer le résultat attendu.

Ma question :
Quelqu’un a-t-il sous la main (ou dans un coin de la tête) une formule plus simple ?

Merci d’avance et bon week-end.
Â+
 

andré

XLDnaute Barbatruc
Bonjour Monique,

Eh oui, c'est une approche fort valable.

Petit bemol toutefois, le même problème que celui que j'avais rencontré :
Pour une période du 02.09.05 au 29.09.05, la formule renvoie -1

Raison pour laquelle j'avais ajouté la fonction MAX, à défaut d'avoir trouvé mieux.

Compte tenu de cette restriction, tu me fais quand même faire une économie de 4 caractères (lol).

Je te remrcie de t'être penchée sur ce problème, qui n'est pas aussi évident que ce qu'on pourrait supposer au départ.

Bon week-end.
André
 

Tibo

XLDnaute Barbatruc
Bonjour Monique,

J'avais fais les essais sur la base des dates proposées par André.

J'avais pas été plus loin (à tort).

Ta formule fonctionne bien si on dépasse les 12 mois.

Voir cependant ce dont a besoin André


@+
 

andré

XLDnaute Barbatruc
Salut Tibo,

Comme disait Iapafoto (un ami japonais) : on peut copier !

Toutefois même petite restriction que pour les deux autres formules, il faut ajouter un MAX pour éviter un nombre de mois à -1.

En dehors de cela, j'ai testé en parallèle les trois formules sur de longues plages de dates : s'il y a erreur, c'est la même partout (lol).

Merci bien Tibo, comme quoi dans trois têtes il y a toujours plus que dans une.

Bon week-end.
André
 

andré

XLDnaute Barbatruc
Resalut vous deux ,

Monique, tu as entièrement raison.
Ta formule passe au-delà des 12 mois, les deux autres pas.

Pour moi, ce n'était pas une contrainte.
Il s'agit d'un calcul de mois complets prestés par année académique pour des intérimaires de l'enseignement, donc du 01.09 au 30.06.

Je vais toutefois essayer de combiner ton idée à celle de Tibo, et voir si une 4ième formule ne pourrait voir le jour.

Je vous tiens au courant, si je trouve quelque chose.

André.
 

andré

XLDnaute Barbatruc
Re,

Rt voilà, après de nombreux tests, la formule suivante semble répondre à la question (étendue aux années).

C'est un cocktail des diverses propositions, mais qui fait quand même 24 caractères de moins :

=MAX(0;(ANNEE(B1+1)-ANNEE(A1))*12+MOIS(B1+1)-MOIS(A1-1)-1)

Pouvez vous tester de votre côté ?

Bonne soirée.
Argentine/Mexique : 1/1 !

Â+
 
C

Claude38

Guest
Bonjour tous,

Bonjour André ta formule semble poser problème avec les calculs qui commencent le 1er du mois.(Si ce n'est moi qui buggue).J'ai copié ta formule pour faire l'essai.Ta formule c'est la 1ère colonne,la 2ème colonne est calculée avec celle de Monique.

01/01/2006 31/01/2006 0 1 Erreur
01/02/2006 28/02/2006 1 1 Ok
01/03/2006 31/03/2006 1 1 Ok
01/01/2006 01/02/2006 0 1 Erreur
01/01/2006 01/03/2006 0 2 Erreur
01/01/2006 01/04/2006 0 3 Erreur
01/01/2006 01/05/2006 0 4 Erreur
01/01/2006 25/06/2006 0 5 Erreur
01/01/2006 25/07/2006 0 6 Erreur
01/01/2006 31/08/2006 0 8 Erreur
01/01/2006 30/09/2006 0 9 Erreur
01/01/2006 30/10/2006 0 9 Erreur
01/01/2006 30/11/2006 0 11 Erreur
01/01/2006 30/12/2006 0 11 Erreur
01/01/2006 30/01/2007 0 12 Erreur
02/01/2006 31/01/2006 0 0 Ok
31/01/2006 31/01/2006 0 0 Ok
02/01/2006 28/02/2006 1 1 Ok
01/06/2005 31/05/2006 12 12 Ok
01/06/2005 01/06/2006 12 12 Ok
01/01/2005 31/05/2005 0 5 Erreur
01/06/2005 01/10/2005 4 4 Ok
01/01/2005 31/01/2005 0 1 Erreur
01/09/2005 30/09/2005 1 1 Ok
01/07/2005 31/07/2005 1 1 Ok
01/05/2005 31/05/2005 1 1 Ok
01/04/2005 30/04/2005 1 1 Ok
01/03/2005 31/03/2005 1 1 Ok
01/02/2005 28/02/2005 1 1 Ok
01/01/2005 31/01/2005 0 1 Erreur
01/01/2005 31/05/2005 0 5 Erreur
Bonne journée
 

andré

XLDnaute Barbatruc
Salut Claude,

Effectivement, il y a eu un petit problème de recopie sous mon post.

Peux-tu essayer avec la formule suivante et me dire si tu obtiens les bons résultats.
Chez moi, cela fonctionne :

=MAX(0;(ANNEE(B1+1)-ANNEE(A1-1))*12+MOIS(B1+1)-MOIS(A1-1)-1)

Merci de me l'avoir fait remarquer.
Â+
 

Tibo

XLDnaute Barbatruc
Salut André,

Je viens de faire un test à mon tour et ça marche.

Bravo


Quant à la formule que j'avais proposé

=MAX(0;MOD(MOIS(B2+1)-MOIS(A2-1);12)-1)

elle est bonne pour le Zop, elle donne 0 pour un intervalle du 01/01/06 au 30/11/06, c'est à dire lorsque le résultat doit être égal à 11.

Bon dimanche

@+
 

andré

XLDnaute Barbatruc
Resalut vous deux,

Encore merci Claude.
Voilà une affaire réglée.

Tibo, il ne faut pas être aussi catégorique.
Ma première formule avait la même erreur que la tienne (à un jour près).
Mais ta formule m'a permise d'écrire la dernière.
Donc il ne faut pas que tu la ZAP(pes) aussi vite.

Bon dimanche.
Â+

PS : tiens, tiens 'zapper' n'est pas repris au dictionnaire (pas plus que 'zipper' et 'zopper')!
ZUP alors !
 

Discussions similaires

Réponses
2
Affichages
520
Réponses
11
Affichages
514
Réponses
3
Affichages
306

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 188
dernier inscrit
evebar