Microsoft 365 (résolu) Position d'une valeur max dans un tableau avec ex-aequo

zedude

XLDnaute Nouveau
Bonjour la commu,

Je n'arrive pas à me dépatouiller d'une problématique que je vous soumets :
Imaginons une feuille avec 2 colonnes
Colonne A, le nom d'équipe (ex "équipe 1","équipe 2", "équipe 3"...)
Colonne B, le nombre de points que cette équipe a remportés (ex 3 , 0 , 3 ...) (je précise ici que ce tableau ne peut pas être trié par ordre croissent ou décroissant de points)

J'ai, par ailleurs, dans ma feuille, une formule GRANDE.VALEUR qui me permet de récupérer la Xème plus grande valeur
A ce moment là, je vois bien que, parfois, j'ai des équipes avec le même nombre de points

Mon but serait d'obtenir le nom de l'équipe ayant la Xème plus grande valeur. Or, il me semble que les commandes permettant de déterminer des rangs dans des listes (comme EQUIV), il n'est pas possible d'indiquer la xème valeur dans le cas où il y a des doublons, triplons, ...

Je vous mets en PJ un exemple de fichier très épuré
Par avance, merci pour votre aide
 

Pièces jointes

  • Points.xlsx
    9.3 KB · Affichages: 6
Solution
Bonjour zedude, JHA, le forum,

Formule matricielle en F2 + format nombre sans décimale :
Code:
=GRANDE.VALEUR($B2:$B6-LIGNE($B2:$B6)/1000000;F1)
Formule matricielle en F3 :
Code:
=INDEX($A2:$A6;EQUIV(F2;$B2:$B6-LIGNE($B2:$B6)/1000000;0))
Sur Office 365 la validation matricielle n'est pas nécessaire.

A+

crocrocro

XLDnaute Occasionnel
Bonjour à tous,
je complète la formule précédente (post #13) avec une 2ème formule pour avoir également un résultat en ligne
VB:
' Classement en colonne (en F3 la formule matricielle suivante et étendre vers G3 ...)
={INDEX($A$2:$A$6;EQUIV(GRANDE.VALEUR($B$2:$B$6-LIGNE($B$2:$B$6)/1000000;COLONNE()-COLONNE($F1)+1);$B2:$B$6-LIGNE($B$2:$B$6)/1000000;0))}
' Classement en ligne (en F3 la formule matricielle suivante et étendre vers F4 ...)
={INDEX($A$2:$A$6;EQUIV(GRANDE.VALEUR($B$2:$B$6-LIGNE($B$2:$B$6)/1000000;LIGNE()-LIGNE($F$3)+1);$B$2:$B$6-LIGNE($B$2:$B$6)/1000000;0))}

et avec un tableau structuré (plus lisible)
VB:
[CODE=vb]' Classement en colonne (en F3 la formule matricielle suivante et étendre vers G3 ...)
=INDEX(Tableau1[Nom];EQUIV(GRANDE.VALEUR(Tableau1[Points]-LIGNE(Tableau1[Points])/1000000;COLONNE()-COLONNE($F1)+1);Tableau1[Points]-LIGNE(Tableau1[Points])/1000000;0))
' Classement en ligne (en F3 la formule matricielle suivante et étendre vers F4 ...)
=INDEX(Tableau1[Nom];EQUIV(GRANDE.VALEUR(Tableau1[Points]-LIGNE(Tableau1[Points])/1000000;LIGNE()-LIGNE($F$6)+1);Tableau1[Points]-LIGNE(Tableau1[Points])/1000000;0))
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83