Rapport de message :*
 

Re: Classement par ordre décroissant en fonction de ...

Titre du sujet : Re: Classement par ordre décroissant en fonction de ...
par JeanMarie le 30/10/2012 19:35:21

Bonsoir Turfmann, Didier, Le forum

Avant de te répondre sur la résolution de ton problème, je n'ai pas compris pourquoi tu as utilisé la fonction NB.SI pour faire ton tableau en D4:W23. Un comparateur aurait suffit du style =($D$24=B4)*1

Concernant ta demande.

Je passe par une colonne intermédiaire, que j'ai placé dans ton fichier à la cellule AG4, et fait un glisser déposer.
=SI(C4;SI(EQUIV(C4;C$4:C$23;0)<>B4;"";NB.SI(C$4:C$23;C4)-B4/100);"")
Si la valeur de la cellule de la colonne B est supérieure à 0, et que c'est la première occurrence de cette valeur dans la liste, le nombre d'occurrence de cette valeur dans la liste est retournée. Pour départager les exaequos, il faut pondérer les valeurs retournées par la formule par le -A4/100

Ensuite pour retourner les valeurs cibles, formule en AA5 et glisser déposer vers le bas
=SI(NB(AG$4:AG$23)>=B4;INDEX(C$4:C$24;EQUIV(GRANDE.VALEUR(AG$4:AG$23;B4);AG$4:AG$23;0);1);"")

La fonction NB() retourne le nombre de valeurs numériques de la plage.
La fonction GRANDE.VALEUR(;) retourne la xième plus grande valeurs numériques de la plage, la valeur du deuxième argument représente la valeur de rang. =GRANDE.VALEUR(...:....;1) ets égale à la fonction MAX(...:...)
La fonction EQUIV() retourne la position de la valeur à rechercher (1er argument), dans la lplage (2ème argument), le 3ème argument indique que l'on veut exactement rechercher la valeur indiquée.

Bon courage pour la suite

@+Jean-Marie