Trouver la énième occurrence
Dans l’article « Trouver
la seconde occurrence » du 24 mai 2007, nous avons montré une solution
pour trouver dans un vecteur la position de la seconde ou de la troisième occurrence d’une valeur ou d’un texte.
Quelques jours plus tard,
avec l’article « Où est la dernière occurrence ? » du 28 mai
2007, nous avons montré comment trouver la toute dernière occurrence.
Dans le premier cas, chaque
position était identifiée à partir de la position de l’occurrence précédente
avec des formules directes. Dans le second cas, il fallait utiliser une formule
matricielle.
Dans l’exemple ci-dessus,
nous avons entré la formule suivante en C1, qui a été ensuite recopiée vers le
bas : =sierreur(petite.valeur(si($A$1:$A$20=$B$1;ligne($A$1:$A$20);"");ligne());"")
C’est
une formule matricielle, donc validée avec [Ctrl]-[Maj]-[Entrée].
Remarque
1 – Comme nous l’avons dit dans l’article précédent, si nous utilisons Excel
2003 ou une version antérieure, nous serons forcés de remplacer sierreur(…) par
si(esterreur(…) ;… ;…) en dupliquant de fait la formule entière.
Remarque
2 – Il y a bien entendu d’autres
solutions possibles, par exemple, en version plus longue mais compatible Excel
2003 : =si(ligne()<=nb.si(A:A; $B$1);petite.valeur(si($A$1:$A$20=$B$1;ligne($A$1:$A$20);"");ligne());"")
3 Commentaire(s):
Cette formule est valable tant que je reste sur la ligne 1 , même si je déplace toutes les données (colonne A B et C , lignes 1 à 20) en bloc.
Mais si je déplace le bloc sur une autre ligne la formule ne fonctionne plus ????
By
Anonyme, sur 5:41 PM
Dans ce cas, il faut adapter la formule proposée puisqu'elle est en effet construite sur le fait que l'on démarre en ligne 1.
Il faudra donc remplacer le deux références à ligne() par des références adaptées à la situation...
By
Hervé Thiriez, sur 10:24 AM
Bonjour, Je trouve cette formule géniale, mais peut elle fonctionner avec du texte ?
By
Anonyme, sur 8:05 AM
Enregistrer un commentaire
<< Accueil