Index et Equiv avec données identiques

JimmyBendrix

XLDnaute Nouveau
Bonjour à tous,

Mon problème est le suivant: J'ai deux colonnes, l'une contenant le nom d'espèces végétales (A) et l'autre contenant l'abondance de cette espèce (B). En tout j'ai environ 60 espèces et 30 sites pour lesquels j'ai une colonne B. Ce que je veux faire, c'est, pour chaque site, déterminer qu'elles sont les 5 espèces les plus abondantes, donc qui ont la plus grande valeur d'abondance. J'ai procédé de la manière suivante:

Dans cinq cellules adjacentes j'ai écrit les formules suivantes:

B63=Grande.valeur(B$2:B$61;1)
B64=Grande.valeur(B$2:B$61;2)
B65=Grande.valeur(B$2:B$61;3)
B66=Grande.valeur(B$2:B$61;4)
B67=Grande.valeur(B$2:B$61;5)

J'ai maintenant mes 5 plus grandes valeurs. Par la suite, j'applique les fonctions index, equiv pour trouver la valeur correpondante en A:

B69=Index($A$2:$A$61;Equiv(B63;B$2:B$61;0))
B70=Index($A$2:$A$61;Equiv(B64;B$2:B$61;0))
B71=Index($A$2:$A$61;Equiv(B65;B$2:B$61;0))
B72=Index($A$2:$A$61;Equiv(B66;B$2:B$61;0))
B73=Index($A$2:$A$61;Equiv(B67;B$2:B$61;0))

Ceci est satisfaisant dans le cas où les 5 plus grandes valeurs sont différentes. Toutefois, dans mon abondance, plusieurs valeurs sont égales (ex:B64 et B65 = 14). Hors, lorsque ça arrive les fonctions index et equiv me renvoient la valeur en A correspondant à la première valeur rencontrée. Par exemple, pour B64 et B65 =14, j'aurais B70 = B71, alors qu'il s'agit de deux espèces différentes. Ce que je veux par contre, est vraiment la valeur en A correpondant à la valeur donnée avec Grande.valeur incluant la position par rapport aux autres valeurs égales. Comment faire? Est-ce que quelqu'un peut m'aider?

Finalement, je sais qu'il existe plusieurs autres façons de régler mon problème, comme les filtres, mais j'aimerais vraiment solutionner mon problème avec des formules afin de ne pas avoir à modifier ma table de départ. Aussi en bout de ligne, c'est plus simple et plus efficace.

Merci de me répondre rapidement,

JimmyBendrix
 

jeanpierre

Nous a quitté
Repose en paix
Re : Index et Equiv avec données identiques

Bonjour JimmyBendrix, et Bienvenue sur XLD,

Peut-être qu'un petit fichier joint, judicieusement posé avec toutes les solutions possibles et les réponses attendues pourrait aider à te répondre.

Tu peux zipper le fichier, ce qui permet d'en mettre plus. Si tu ne sais pas faire, tu demandes.

A te lire.

Jean-Pierre
 

Clochard

XLDnaute Impliqué
Re : Index et Equiv avec données identiques

Salut JimmyBendrix et le Forum

Avec ce que j'ai appris ici voici ma suggestion....

en espérant avoir bien compris....


Bonne journée
Clochard
 

Pièces jointes

  • données végétation2.xls
    29.5 KB · Affichages: 205
Dernière édition:

JimmyBendrix

XLDnaute Nouveau
Re : Index et Equiv avec données identiques

Salut Clochard,

Merci beaucoup pour ton aide. Le résultat est exactement ce que je désire. Toutefois, comme j'aime bien comprendre ce que je fais et non l'appliquer aveuglément, j'ai regardé un peu ce que tu as fait et je dois avouer que je ne comprend pas grand chose. Premièrement, je ne comprends pas bien ton utilisation de la fonction Indirect. Deuxièmement, J'ai de la misère à voir ce que les fonctions lignes et ligne et la division vont donner en bout de compte.

Voici l'équation dans la cellule B65
=INDEX($A$2:$A$61;(GRANDE.VALEUR(B$2:B$61;1)-GRANDE.VALEUR(B$2:B$61-LIGNE(INDIRECT("1:"&LIGNES(B$2:B$61)))/(LIGNES(B$2:B$61));1))*(LIGNES(B$2:B$61)))

Pourrais-tu s'il-te-plaît me décrire les étapes dans cette formule?

Merci énormément pour ton aide.

Bye,
JimmyB
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia