Calcul d’occurrence dans un intervalle de dates

Bonjour,

je cherche désespéramment une formule me permettant de calculer l’occurrence d'une donnée (date), mais dans des intervalles de dates.

Je m'explique :

J'ai dans la colonne A une date de début et en colonne B une date de fin, ce qui me donne un intervalle de date qui est donc d'une durée variable.

Dans la colonne C, j'aimerais arriver à avoir le nombre de fois où la date du 15 de chaque mois est survenue dans l'intervalle donné.

Par exemple, si mon intervalle de date est :

12 janvier au 11 février = le 15 est survenu une seule fois, soit le 15 janvier

ou encore :

entre le 1er mars et le 12 juin = le 15 est survenu 3 fois, soit les 15 mars, 15 avril et 15 mai.

J'ai fait quelques tentatives avec SOMMEPROD, mais sans résultats concluants ou intéressants.

Est-ce qu'un ou une charitable serait en mesure de me donner un coup de pouce ?

Milles Mercis!

Bonsoir,

On peut faire comme ça :

=FRACTION.ANNEE(DATE(ANNEE(A2);MOIS(A2)+(JOUR(A2)>15);15);DATE(ANNEE(B2);MOIS(B2)-(JOUR(B2)<15);15))*12+1

(Mettre cellule en format Nombre...)

Cordialement.

Bonjour,

J'avais commencé à jeter un oeil hier, décidément il y a de quoi se creuser la tête avec les dates.

MFerrand, ta formule ne marche pas pour des intervalles inférieurs à un mois n'incluant pas de 15, elle renvoie 2 dans ce cas.

Je propose celle-ci (col. D), qui compte le nombre de mois entre la fin du mois de départ ou du précédent (col. E) et le début du mois de fin ou du suivant (col. F) :

=DATEDIF(FIN.MOIS(A2;SI(JOUR(A2)<=15;-1;0));FIN.MOIS(B2;SI(JOUR(B2)<15;-1;0))+1;"m")
3115dumois.xlsx (10.27 Ko)

Merci Oyobrans ! je rectifie...

=FRACTION.ANNEE(DATE(ANNEE(A2);MOIS(A2)+(JOUR(A2)>15);15);DATE(ANNEE(B2);MOIS(B2)+(JOUR(B2)>15);15))*12

A noter que cette formule renvoie le résultat quel que soit l'ordre des dates...

J'ai préféré utiliser le 15 (tant qu'à faire), même quantième de jour pour tous les mois, plutôt que le dernier jour variable... Avec FRACTION.ANNEE (sans 3e argument) on obtient directement un nombre entier en multipliant son résultat par 12.

[NB- Je n'utilise plus DATEDIF et préfère, s'il y a lieu substituer une fonction VBA à son utilisation...]

Cordialement.

Je sais que DATEDIF n'est pas plébiscitée, je ne rencontre pas de défaillance avec à mon humble niveau. J'allais me pencher sur l'étude de ta fonction, et en l'accolant (la collant) aux autres, j'obtiens 1 pour l'intervalle 15/01 - 15/02. Je me permets de relever à nouveau, si tant est qu'il faille comptabiliser les deux...

Edit : OK, je note le MOIS(A6)+(JOUR(A6)>15), en mettant MOIS(B6)+(JOUR(B6)>=15), c'est "correct", je crois. Je continue de me pencher dessus, bien joué sinon, comme d'hab'.

Edit n°2 : En utilisant l'astuce booléenne, du coup

=DATEDIF(FIN.MOIS(A2;-(JOUR(A2)<=15));FIN.MOIS(B2;-(JOUR(B2)<15))+1;"m")

Décidément ! Oyobrans, tu me deviens indispensable !!

Je vais bien finir par l'équilibrer... (tu l'avais fait d'ailleurs !)

=FRACTION.ANNEE(DATE(ANNEE(A2);MOIS(A2)+(JOUR(A2)>15);15);DATE(ANNEE(B2);MOIS(B2)+(JOUR(B2)>=15);15))*12

En espérant que tu ne vas pas me trouver un cas où le >= ne suffit pas.

Je crois bien d'ailleurs que j'avais opté pour +1 dans la 1re version à cause d'un cas de ce type, mais ça s'est révélé pervers dans un autre cas...

J'aime beaucoup les astuces booléennes, ça évite de nombreux SI, et je trouve que ça donne une certaine élégance... ça m'évoque une danseuse qui virevolte (sans doute très subjectif...)

Et ça s'accomode bien avec des travaux sur dates ou heures, Excel renvoie 1 (correspondant à 1 jour...)

[A noter si tu utilises ce genre d'actuces en VBA : tenir compte que c'est -1 qui est renvoyé et non 1...]

Cordialement.

Un immense immense merci à vous deux qui avez pris du temps pour solutionner le tout.

La dernière formule proposée par MFerrand semble fonctionner Nickel!

Oyobrans, vos travaux ont assurément contribué au résultat.

À nouveau, je vous réitère mon appréciation.

Salutations du Québec!

Rechercher des sujets similaires à "calcul occurrence intervalle dates"