Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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+

JHA

XLDnaute Barbatruc
Bonjour à tous,

tu peux essayer cette matricielle
VB:
=INDEX($A$2:$A$6;PETITE.VALEUR(SI(($B$2:$B$6=F$2)*($A$2:$A$6<>$E$3:E$3);LIGNE($A$2:$A$6)-1);1))

JHA
 

Pièces jointes

  • Points.xlsx
    10 KB · Affichages: 2

job75

XLDnaute Barbatruc
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+
 

Pièces jointes

  • Points.xlsx
    9.6 KB · Affichages: 2

Dranreb

XLDnaute Barbatruc
Bonjour.
En F2 validé par Ctrl+Maj+Entrée :
Code:
=GRANDE.VALEUR($B$2:$B$6+LIGNE($B$2:$B$6)/1000;F$1)
En F3 validé par Ctrl+Maj+Entrée :
Code:
=EQUIV(F$2;$B$2:$B$6+LIGNE($B$2:$B$6)/1000;0)
Ensuite seulement à propager sur les 5 colonnes.
Mais je pourrais vous écrire une fonction perso qui calcule des rangs sans doublons …
 

zedude

XLDnaute Nouveau
A part le fichier en PJ de Job75, pour l'instant, les autres fichiers proposés ne répondent pas à ma problématique, mais je pense que je l'ai mal expliqué
Dans le cas où il y a des valeurs de points ex-aequo, je cherche à ramener non pas le nom de la 1ERE équipe dans la matrice qui a ce nombre de point, mais la Xème équipe qui a ce nombre de point
Dans ton 1er fichier JHA, en gros, je cherche à avoir un résultat qui sera :
Score équipe 1 ;Score équipe 2 ; Score équipe 5 ; Score équipe 3 ; Score équipe 4
 

zedude

XLDnaute Nouveau
@job75 : à défaut de pouvoir récupérer ton fichier, j'ai appliqué tes formules et tout est Ok

J'avais effectivement vu sur des posts cette méthode pour ne plus avoir d'ex-aequo (vu que les décimales faisaient références au numéro de ligne) mais je n'avais pas pensé à cette application

Grand merci à toi
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Le plus simple est d'ajouter une colonne pour supprimer les doublons.
VB:
=INDEX($A$2:$A$6;EQUIV(GRANDE.VALEUR($C$2:$C$6;F$1);$C$2:$C$6;0))

JHA
 

Pièces jointes

  • Points.xlsx
    20.5 KB · Affichages: 1

crocrocro

XLDnaute Occasionnel
Bonjour à tous,
à partir des astucieuses formules de job75,
si le but est de lister le classement complet, on peut s'affranchir des formules des lignes 1 et 2, en mettant en F3 la formule matricielle suivante
VB:
=INDEX($A2:$A6;EQUIV(GRANDE.VALEUR{($B2:$B6-LIGNE($B2:$B6)/1000000;COLONNE()-COLONNE($F1)+1);$B2:$B6-LIGNE($B2:$B6)/1000000;0))}
et étendre vers G3 ...
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Je propose quand même une fonction perso plus facile à comprendre dans la formule que des combinaisons de INDEX, EQUIV et GRANDE.VALEUR.
Il s'agit d'une fonction IndexRang, qui marche à peu près comme la fonction INDEX, sauf qu'au lieu du numéro de ligne on précise un rang souhaité, et il est spécifié comme argument 3, parce que le 2 c'est la colonne de tri, affectée d'un signe moins si on la veut en ordre décroissant, ou plusieurs spécifiées entre accolades et séparées par des points.
 

Pièces jointes

  • FctIndexRang.xlsm
    41.7 KB · Affichages: 1
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…