encore une histoire de classement...

  • Initiateur de la discussion Initiateur de la discussion grodep
  • 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 !

grodep

XLDnaute Occasionnel
Désolé je sais comme les problemes de classement sont récurrents sur ce forum, mais je n'arrive pas à trouver de solution à mon souci :
j'ai un tableau simple avec des noms de personnes. Pour chaque personne, il y a deux lignes, une avec des notes et une moyenne et la deuxieme avec des annotations particulieres. Comment faire pour dresser un classement par moyenne de maniere a ce que la 2ème ligne de chaque personne "reste" avec la dite personne?

Ci joint le tableau en question.
Je dois préciser que le tableau est "mis à jour" par une routine vba qui rajoute des info sur les deux lignes pour chaque personne.

merci d'avance
 

Pièces jointes

Re : encore une histoire de classement...

j'avais effectivement pensé à une solution comme celle ci, mais je crains qu'avec des égalités de moyenne, le tri "mélange" les lignes de valeurs égales. Comment puis je avoir l'assurance que ce ne sera pas le cas?
 
Re : encore une histoire de classement...

Bonjour

Peut être que le fichier en pièce jointe fera ton bonheur ( 1 ou 2 secondes au moins😉), surtout la feuille 2.

Je n'ai pas trop compris sur quel critère tu fais ton classement mais j'ai qu'en même fait le tri d'après ta colonne 0.

@ plus

Et au passage bonjour abcd
 

Pièces jointes

Re : encore une histoire de classement...

du rapide, très rapide ! si je peux me permettre : pourrais tu m'expliquer ce que tu as fait et comment? Ceci afin d'apprendre et de progresser. De plus, j'ai précisé que je faisais le classement selon la colonne moyenne et non selon la colonne classement qui correspond à un autre classement à partir d'autres notes 😉
 
Re : encore une histoire de classement...

Pour abcd : en fait, pour être sur que cette solution fonctionne sans "mélange" aléatoire des lignes de meme valeurs, il me suffit de préciser le nom sur la deuxieme ligne pour chaque personne. De cette maniere, meme si je n'ai pas l'assurance que tout ne se mélange pas, au moins je suis sur que je le verrai 🙂
 
Re : encore une histoire de classement...

Re,

J'ai connu une personne qui faisait faire ses pantalons sur mesure, mais qui de plus mettait une ceinture et des bretelles pour être sur que son pantalon ne tombe pas sur ses genoux.
Tu me fais un peu penser à elle (lol).

En Feuil1!A4 : =SI(M4="";A3;M4+LIGNE()/1000)
En Feuil2!A4 : =SI(M4=0;A3;M4+LIGNE()/1000)

abcd
 
Re : encore une histoire de classement...

Re,

J'ai connu une personne qui faisait faire ses pantalons sur mesure, mais qui de plus mettait une ceinture et des bretelles pour être sur que son pantalon ne tombe pas sur ses genoux.
Tu me fais un peu penser à elle (lol).
😀 😀 😀 😀

sinon j'adore ta solution 🙂

Nb: ce n'est pas que je n'apprécie pas celle de cisco, au contraire je découvre les fonctions index et équiv dans un exemple précis(m'a l'air bien compliqué pour moi tout ça) mais disons que la tienne correspond plus à mes p'tits moyens 🙂

grands mercis à vous deux(cisco, c'est pas parce que je dis merci que tu dois te sentir dispenser d'explications:! 😀 😀 . autant je comprends équiv, autant je patauge avec ta fonction index.. mais bon je veux pas abuser de ton temps, et le forum n'est pas non plus un cours particulier pour excelleur en herbe 😛 )
 
Re : encore une histoire de classement...

Rebonjour

Pour le moment, je sèche/pb d'ex-aequo.

Alors, faute de mieux, une petite explication

en B4
=INDEX(Feuil1!B$4:B$45;EQUIV(GRANDE.VALEUR(Feuil1!M$4:M$44;LIGNE()/2-1);Feuil1!M$4:M$45;0))


Grande.valeur va chercher la 1ère (=4/2-1(c'est juste un truc de fainéant pour ne pas avoir à tapper le rang de la plus grande valeur à aller chercher)) plus grande valeur. Excel trouve 13,2. On a donc
=INDEX(Feuil1!B$4:B$45;EQUIV(13,2;Feuil1!M$4:M$45;0))

EQUIV cherche 13,2 dans la plage Feuil1!M4:M45 et trouve que cette valeur est sur la 17ème ligne de cette plage. Le 0 est là pour qu'excel cherche exactement 13,2, pas la valeur juste inférieure (ce qu'on obtient si omis ou -1), ni juste supérieure (obtenue avec 1).

On en est donc à
=INDEX(Feuil1!B$4:B$45;17)
et excel renvoie le contenu de la 17ème ligne de la plage B4:B45, à savoir SANGARE. Pas besoin de préciser la colonne où il faut chercher, puisque la plage en question n'a qu'une colonne...

Et justement, cette technique pose pb lorsqu'il y a des ex-aequo.
En B6, la seconde plus grande valeur est 13, donc excel trouve DANG. OK

En B8, la troisième plus grande valeur est aussi 13, donc excel ... retrouve DANG, puisque la moyenne de DANG est aussi de 13 alors qu'on devrait trouver MENDOUGA. Grrrrrrrrr😡


Pour les autres valeurs, c'est la même méthode mais en cherchant par rapport au nom affiché en B4, B6, B8... Pour afficher les notes pas de pb, pour afficher les commentaires, il suffit d'aller lire une ligne plus bas, d'où le +1 dans
=INDEX(Feuil1!$B$4:C$45;EQUIV(Feuil2!$B4;Feuil1!$B$4:$B$45;0)+1;COLONNE()-1).

Après, les $, les Colonne()-1 etc, ce ne sont juste que des astuces pour faciliter le copier-coller de proche en proche, par paquet de 2 lignes.
Quelqu'un aurait il une astuce pour éliminer le pb/ex-aequo ? J'ai bien quelques idées, mais cela me parait lourd...😱

@ plus
 
Re : encore une histoire de classement...

UN immense merci pour ces explications; j'avais déjà travaillé avec grande.valeur pour d'autres problemes de classements, tirages(...), équiv me parait clair. Je sechais sur index car il est expliqué dans l'aide qu'il faut le n° de col ET de ligne , mais comme tu l'expliques, si ta matrice n'a qu'une colonne, inutile de préciser !!
bien vu pour le copier coller sur deux lignes, j'avoue qu'a chaque fois que j'ai ce genre de trucs à faire, je me les coltine une par une ce qui est gravement pénible !!

Le probleme des ex aequo est malheureusement ultra récurrent et je n'ai jamais trouvé de solution satisfaisante, mais j'avoue que celle proposée par abcd est assez sympathique d'autant plus que dans le cas de mon tableau, les 0,0x ajoutés sont "quantité négligeable" et ne risquent pas d'influer sur le classement final !si ça devait etre le cas, je remplacerais par un 0,00000x 😛

merci encore à vous deux
 
Re : encore une histoire de classement...

Bonjour bis, ter...

Pour faire simple et efficace (mais un peu faux) j'ai transformé la formule qui donne la moyenne

=SI(C4<>0;MOYENNE(C4:L4);"")+LIGNE()/1E10

Les probabilités d'obtenir des ex-aequo sont dans ces conditions très, très, très faibles....

Et tout "s'arrange" par miracle😛

Si un jour tu obtiens avec ce fichier deux fois le même nom (existence de faux ex-aequo), fais nous signe🙄

P.S: Il ne te reste qu'à faire une MFC pour faire "disparaitre" les 0. On n'est plus à un miracle près...

@ plus
 

Pièces jointes

Dernière édition:
Re : encore une histoire de classement...

merci cisco, effectivement celà fonctionne de cette manière, j'ai cependant du modifier comme suit afin de "garder" les deux lignes de chaque nom ensemble :
=SI(B4<>0;(MOYENNE(C4:L4)+LIGNE()/10000000000);M3)

qu'entends tu par MFC ? les miracles je connais, mais les mfc... 🙂
 
Re : encore une histoire de classement...

qu'entends tu par MFC ? les miracles je connais, mais les mfc... 🙂

MFC = mise en forme conditionnelle

Permet de modifier le fond, la couleur de la police ... lorsque le contenu de la cellule répond à un critère particulier...

Par exemple, permet d'écrire les 0 en blanc dans des cellules ayant un fond blanc, ce qui fait qu'on ne les voit pas🙂.

@ plus
 
- 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
4
Affichages
352
Réponses
15
Affichages
881
Réponses
1
Affichages
240
Retour