Trouver la énième occurrence
De nombreux utilisateurs d’Excel connaissent la fonction equiv() et savent qu’elle sert par exemple à trouver la première
occurrence d’une valeur ou d’un texte dans un vecteur quand son troisième
argument est 0, grâce à la syntaxe : =equiv(valeur;vecteur;0).
Dans le tableau ci-dessous, nous avons tiré en colonne A
des valeurs aléatoires de 1 à 10, histoire de pouvoir bien tester le
fonctionnement de nos formules. Il suffit donc d’utiliser la touche F9 pour obtenir un nouveau tirage des valeurs de la colonne
A.
La formule de D2, visible dans le commentaire associé,
sert à calculer la position du premier 7 dans la colonne A.
Remarque – Dans le temps (avant Excel 2007), la fonction sierreur() n'existait pas et l'on était alors obligé d'utiliser une formule plus complexe avec un si(), ce qui nous obligeait à écrire deux fois l'expression à analyser !
6 Commentaire(s):
Bonjour à tous,
Après essai de vos formules, je trouve une erreur si l'occurence 2 est en ligne 21, l'occurence 3 est ligne 22.
Pour palier à ce soucis, je vous propose:
=SI(NB.SI($A$2:$A$21;$D$1)>=LIGNES($1:1);EQUIV($D$1;A:A;0);"Aucune")
et
=SI(NB.SI($A$2:$A$21;$D$1)>=LIGNES($1:2);D2+EQUIV($D$1;DECALER($A$1;D2;0):$A$21;0);"")
By Unknown, sur 6:34 PM
Bonjour Jacky,
Vous avez peut-être regardé ma copie d'écran un peu trop vite...
En effet, ma table s'arrêtait en ligne 21 !
Cordialement. Hervé Thiriez.
By Hervé Thiriez, sur 9:49 AM
Jacky Harlé a eu le mérite d'écrire les formules qui fonctionnent sous Excel 2003
Cordialement vôtre.
By Anonyme, sur 1:24 PM
Bonjour,
La formule matricielle suivante permet de trouver directement la ligne de la énième occurrence (en E1 dans ce qui suit) :
=SIERREUR(PETITE.VALEUR(SI($A$1:$A$21=D1;LIGNE($A$1:$A$21));E1);"")
Cordialement.
Daniel
By Unknown, sur 11:35 AM
Bravo et merci pour cette super formule matricielle qui marche à merveille!
By Anonyme, sur 5:20 PM
super formule
merci
By Anonyme, sur 3:49 PM
Enregistrer un commentaire
<< Accueil