Microsoft 365 RechercheX et exaequo

  • Initiateur de la discussion Initiateur de la discussion matmac
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

matmac

XLDnaute Occasionnel
Bonjour,

Dans le fichier joint, à l'onglet "classement", j'ai une formule recherchex croisée avec une formule petite.valeur qui me permet d'établir un classement à partir de valeur récupérée dans l'onglet 'liste participants" et d'une focntion rang. Or lorsqu'il y a des exaequo dans cette fonction rang, la formule affiche X fois le même nom s'il y a X exaequo.
Comment puis-je modifier ma formule pour que les exaequo apparaissent ?

Merci par avance
 

Pièces jointes

Bonjour Matmac,
Pour départager les exæquos, une possibilité est de différencier les classements an feuille Liste Participants avec en N3 :
VB:
=SI(M3="";"";RANG(M3;M$3:M$42;1)+LIGNE()/1000000)
En format Nombre, 0 décimale.
Le petit LIGNE()/1000000 ne changera pas le résultat mais différentiera deux exæquos car ils ne seront pas sur la même ligne.
Par ex en Y5 : 5.000005 et en Y9 : 5.000009.

NB : je ne fourni pas de PJ car sous 2007 je n'ai pas RechercheX.
 
Re,
Ca fonctionne, mais le problème auquel je n'avais pas pensé, c'est que les exaequo n'ont pas la même place.
Du coup, j'ai testé avec la fonction trierpar par ordre de place (colonne AU de la feuille "liste participants") puis recherchex pour attribuer la place. Ca à l'air de fonctionner, mais ça m'affiche les nome de ceux qui ne sont pas classés dans la catégorie. Je met en pièce jointe pour mieux comprendre
 

Pièces jointes

c'est que les exaequo n'ont pas la même place.
Je ne comprends pas ce que vous voulez dire.

Pour mieux comprendre, en PJ j'ai fait un essai sans RechercheX, mais avec de simple Index Equiv :
VB:
=SIERREUR(INDEX('Liste Participants'!$C$3:$C$42;EQUIV(GRANDE.VALEUR('Liste Participants'!$N$3:$N$42;A4);'Liste Participants'!$N$3:$N$42;0))&"  ( "&INDEX('Liste Participants'!$M$3:$M$42;EQUIV(GRANDE.VALEUR('Liste Participants'!$N$3:$N$42;A4);'Liste Participants'!$N$3:$N$42;0))&" pts )";"")
Pour départager les ex aequo, j'ai donné avantage à celui qui a le plus de "notes" dans A à Z,
plus évidemment le Ligne()/1000000 dans la liste. Ce qui donne :
VB:
=SI(M3="";"";RANG(M3;M$3:M$42;1)+NB.SI(E3:L3;">0")/1000+LIGNE()/100000000)
Départage arbitraire bien sur mais vous pouvez changer le critère de départage.
Si dans la liste la colonne M donne le nombre de points alors le résultat de la PJ semble cohérent, les ex aequo sont bien pris en compte, sinon soyez plus explicite.
(NB : Je n'ai traité que CLASSEMENT SCRATCH pour l'exemple )
 

Pièces jointes

Dernière édition:
Bonjour,
La nuit portant conseil 🙂, j'ai trouvé l'astuce permettant de départager les ex aequo tout en les déclarer ex aequo. Voir PJ.
1- Liste Participants Col N, on revient à la formule initiale
VB:
=SI(M3="";"";RANG(M3;M$3:M$42;1)+LIGNE()/100000000)
2- Classements
Le N° de place n'est plus donné par la colonne A mais par Ligne()-3 ( le N°1 se trouvant en ligne 4, Ligne()-3 =1 ). Ce qui fait que le N°1 doit se trouver impérativement en ligne 4.
Ce qui donne en colonne B:
Code:
=SIERREUR(INDEX('Liste Participants'!$C$3:$C$42;EQUIV(GRANDE.VALEUR('Liste Participants'!$N$3:$N$42;LIGNE()-3);'Liste Participants'!$N$3:$N$42;0))&"  ( "&INDEX('Liste Participants'!$M$3:$M$42;EQUIV(GRANDE.VALEUR('Liste Participants'!$N$3:$N$42;LIGNE()-3);'Liste Participants'!$N$3:$N$42;0))&" pts )";"")
3- En colonne A, on regarde si le nombre de points est identique à la ligne du dessus pour classer les participants, donc on met bien les ex aequo :
Code:
=SIERREUR(SI(INDEX('Liste Participants'!$M$3:$M$42;EQUIV(GRANDE.VALEUR('Liste Participants'!$N$3:$N$42;LIGNE()-3);'Liste Participants'!$N$3:$N$42;0))=INDEX('Liste Participants'!$M$3:$M$42;EQUIV(GRANDE.VALEUR('Liste Participants'!$N$3:$N$42;LIGNE()-4);'Liste Participants'!$N$3:$N$42;0));A4;A4+1);"")
avec 1 "en dur" en A4.
On voit bien que Descartes2 et Bayet1 sont ex aequo, ainsi que Rabelais3 et Descartes1.

Voilà ça marche. Reste à vous :
1- De revenir à RechercheX au lieu de IndexEquiv si vous le voulez.
2- De supprimer l'information nombre de points
3- De traiter les 3 autres classements.

Faites un retour si cette solution vous convient.
 

Pièces jointes

Bonjour,
J'aurais bien voulu comprendre la méthode de classement utilisée dans ton résultat...
Selon tes calculs, le "LPF" Nadaud arrive en tête, bien qu'il n'ait participé qu'à 4 "compétitions".
L'établissement ayant participé à 1 seule compét' est donc assuré de finir premier?
Au nombre de points, cela pourrait également poser quelques soucis, pour peu qu'un établissement n'ait pas participé au Quizzaco..
Bonjour Sylvain
Je viens de regarder ton dernier envoi, et ne comprend pas non plus la méthode de classement...
Tu additionnes les différents rangs?

Bonne journée
 
Bonjour Cousinhub,
Tu additionnes les différents rangs?
En aucune façon.
La Liste utilise Rang pour classer en fonction des points de la colonne M.
Dans Classement je remet dans l'ordre Rang du premier au dernier, puis en colonne A détermine les ex aequos.
bien qu'il n'ait participé qu'à 4 "compétitions"
Exact c'est discutable. Perso j'aurais préféré un classement comme je l'ai fait au post précédent, en donnant un bonus à ceux qui ont participés au plus d'épreuves, en faisant :
VB:
RANG(M3;M$3:M$42;1)+NB.SI(E3:L3;">0")/1000+LIGNE()/100000000
le Ligne()/1e6 élimine les ex aequo, et le NB.SI(E3:L3;">0")/1000 permet d'avantager celui qui a le plus d'épreuves.
Ensuite si un individu fait 8 épreuves médiocres à 3 points pour chaque épreuve et un autre qui n'a fait qu'une épreuve mais à 20 points, lequel est le 1er ? Ce n'est plus mathématique mais philosophique. 🙂
 
Bonjour Cousinhub,

En aucune façon.
La Liste utilise Rang pour classer en fonction des points de la colonne M.
Dans Classement je remet dans l'ordre Rang du premier au dernier, puis en colonne A détermine les ex aequos.
🙂
Re-,
Si on analyse, tu prends la colonne M de l'onglet "Liste Participants" comme référence.
Et cette colonne additionne tous les rangs des compétitions..
E3 : valeur de la cellule E3 de l'onglet "A-Pointe et pagaie" qui correspond au rang de cette compétition...
etc...
Du moins, d'après ma lecture... 🙂
 
Et cette colonne additionne tous les rangs des compétitions..
Je n'ai pas toucher à cette colonne, elle est présente dans la PJ d'origine. Donc un choix de Matmac.

Et c'est vrai que c'est bizarre. Tout dépends comment sont comptabilisé les points.
Mais si, plus on a de points meilleur on est, comme souvent en sport, alors s'en devient absurde puisque si quelqu'un qui a le max de points à chaque épreuve, il se retrouverait loin derrière celui qui a été moins bon.
Dans ce cas on pourrait inverser le tout, il suffirait de remplacer Grande.valeur par Petite.valeur.

Mais ça, c'est à Matmac de nous expliquer ses règles.
 
Bonjour,
@sylvanu : Je regarde ce que ça donne. Si je n'y arrive pas, la nuit portant conseils également, je vais faire plus simple : départager avec le prologue en additionnant sa valeur/100 à la somme des résultats permettant d'établir le rang. Ainsi, il n'y a plus d'exaequo. Merci
@Cousinhub : le fichier est incomplet, mais je n'avais pas besoin de toutes les infos pour le tester.

Merci pour votre aide
 
Re, bonjour Djidji,
Effectivement en utilisant Petite.valeur, on rétablit le bon ordre. Voir PJ.Ainsi celui qui est 8 fois 1er est devant les autres.
Reste effectivement le problème du nombre d'épreuves exécutées car si on ne fait qu'une épreuve et qu'on arrive 1er, alors on est 1er au classement général.
 

Pièces jointes

Re,
Je n'avais pas vu tout vos messages, le temps de rédiger le mien.
Désolé, de vous avoir induit en erreur en fournissant un fichier avec des données incomplètes. D'ailleurs, je n'avais même pas entré la formule pour récupérer les rang du prologue...
Le classement se fait bien en additionnant les places (donc rang) pour chaque épreuve (une fois que tous ont participé à toutes les épreuves...). Donc la plus petite somme de rangs arrive 1er… C'est discutable, je l'entends, mais le résultat est le même à la fin.
Encore merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
118
Réponses
18
Affichages
1 K
Réponses
3
Affichages
933
Retour