Bonjour,
Un classeur exemple serait peut-être le bienvenu pour avoir une idée de la structure de la feuille.
Le classeur joint donne quelques idées pour trouver les différentes occurrences de dates dans une colonne.
Le problème de la fonction EQUIV est qu'elle ne permet d'obtenir que la première occurrence de l'élément recherché. S'il y en a plusieurs,il vaut mieux remplacer la plage de recherche par une plage de même importance au moyen d'une formule matricielle du genre :
= SI(plagedates = datecherchee; ligne(plagedates);"")
On peut alors chercher les différents éléments numériques de cette plage intermédiaire à l'aide de la fonction PETITE.VALEUR qui n'est pas sensible aux cellules vides.
On obtiendra la ligne de la n ième occurrence avec une formule matricielle telle que:
= PETITE.VALEUR( SI(plagedates = datecherchee;LIGNE(plagedates);"");n)
à valider par Ctrl + Maj + Entrée.
L'autre problème est que l'on se donne non pas une date précise mais une année, par exemple en C3, et un mois, disons en D3, d'où la nécessité, dans la partie de formule en SI donnant la plage intermédidaire, d'un test plus ou moins semblable à celui proposé par Philippe et,pour la ligne de la n ième occurrence, une formule matricielle pouvant ressembler à :
= PETITE.VALEUR(SI((ANNEE(plagedates)=$C3)*(MOIS(plagedates)=$D3);LIGNE(plagedates);"");n)
Ceci est mis en oeuvre dans la feuille sommeprod_petitevaleur du classeur joint.
Dans les exemples du premier message, toutes les dates sont des fins de mois. S'il s'agit d'une contrainte de la colonne de date, on peut alors,toujours pour l'année et le mois cherchés respectivement en C3 et D3,
se placer sur une cellule de la ligne 3 et définir le nom datecherchee par :
=FIN.MOIS(DATE($C3;$D3;1);0)
Attention aux références mixtes dans cette définition !
Avec 2019 et 2 en C3 et D3, datecherchee correspondra, pour toute cellule de la ligne 3, à la date 28/02/2019. Mais, avec 2015 et 5 en C4 et D4, datecherchee correspondra, pour toute cellule de la ligne 4,
à la date 31/05/2015.
Le test se simplifie. Cette méthode est mise en oeuvre dans la feuille finmois_petitevaleur.
Le problème de ces deux feuilles est la nécessité d'utiliser des formules matricielles.
Une troisième méthode serait d'utiliser à nouveau EQUIV mais de décaler la plage d'un nombre suffisant de lignes pour éliminer les occurrences déjà trouvées lorsque l'on veut chercher l'occurrence suivante;
la fonction DECALER est toute trouvée pour ceci et cela évite les formules matricielles. Cette troisième méthode est mise en oeuvre dans la feuille finmois_décaler.
Cordialement
Claude
Partager