Trier automatiquement un classement par ordre croissant sans macro

Choops

XLDnaute Occasionnel
Bonjour à toutes et à tous,

je cherche à effectuer le tri d'un classement par ordre croissant sans macro qui se met à jour automatiquement lorsque des données sont rajoutées à ce classement.

Code:
    A            B
Participants   Score
Kevin	       2,75
Britney        1
Alfred	       1,75
Julie	       2,25
Todd	       1,75
Je cherche à obtenir :

Code:
1	Kevin
2	Julie
3	Alfred (ordre alphabétique si possible pour les égalités)
3	Todd
5	Britney
J'obtiens par le biais de formules à base de RANG, GRANDE.VALEUR, INDEX et EQUIV (cf fichier joint) :

Code:
1	Kevin
2	Julie
3	Alfred
3	Alfred <-- ça devrait être Todd
5	Britney
Merci d'avance ! :)
 

tototiti2008

XLDnaute Barbatruc
Re : Trier automatiquement un classement par ordre croissant sans macro

Bonjour Choops,

Peut-être

Code:
=INDEX($A$2:$A$6;EQUIV(GRANDE.VALEUR($B$2:$B$6+LIGNE($1:$5)/10000;LIGNES($1:1));$B$2:$B$6+LIGNE($1:$5)/10000;0))
à valider en matriciel

Mais pour l'ordre des égalités, ce n'est pas l'ordre alpha, c'est l'ordre inverse de celui dans lequel ils apparaissent dans la liste

Edit : Bonjour poulie,

correction au-dessus en rouge
 
Dernière édition:

poulie

XLDnaute Impliqué
Re : Trier automatiquement un classement par ordre croissant sans macro

Bonjour Choops,

Eventuellement en complétant ton résultat avec +LIGNE(F1)/10000.
Vois sur la feuille proposition de ton classeur.

Bonne réception

Bonjour tototiti2008
 

Fichiers joints

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Merci pour vos suggestions ! Si je comprends bien, vos suggestions semblent être équivalentes (formulation différente), càd qu'on rajoute aux scores un dix millième de valeur pour les différencier. Par contre autant je comprends bien le raisonnement de la formule de poulie, autant je ne comprends pas celui de la formule matricielle de tototiti2008, ça fait bien 5 ans que je n'ai pas utilisé les formules matricielles et je ne me souviens plus de ce qu'elles signifient.

Aussi, ce n'est pas possible d'avoir les égalités qui apparaissent par ordre alphabétique ?
 

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Si vous avez d'autres propositions, ne soyez pas timides ;)
 

Claude38

XLDnaute Impliqué
Re : Trier automatiquement un classement par ordre croissant sans macro

Bonsoir tous,

Un essai sur le fichier de Poulie (ne pouvant ouvrir le fichier)
Formule colonne C complétée

Bonne soirée
 

Fichiers joints

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Bonsoir Claude, merci, je vais regarder ta solution de près !
 

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Rebonsoir Claude, je suis entrain d'étudier ta proposition et je bloque déjà en C2 sur =NB.SI(A$2:A$6;"<="&A2), je ne comprends pas ce que signifie "<="&A2 ?

Je ne comprends pas en fait le nombre que tu as cherché à créer en colonne C, si tu pouvais m'expliquer, je t'en saurais gré :)
 

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Bonjour lynyrd, merci pour ta proposition. Elle marche bien mais nécessite un tri manuel des noms pour l'ordre alphabétique en cas d'égalité. Celle de Claude convient parfaitement car tout est automatisé mais je ne comprends pas ce que signifie "<="&A2 , j'espère qu'il (ou quelqu'un d'autre) pourra m'expliquer.
 

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Est-ce que =NB.SI(A$2:A$6;"<="&A2) signifie compter le nombre de cellules qui sont inférieures ou égales à A2 ?
Si oui, vu que A2=Kevin (ça veut dire quoi inférieur ou égal à Kevin ?) et qu'il n'y en a qu'un seul sur la plage A2:A6 pourquoi est-ce que le résultat renvoyé est 4 ????
 

tototiti2008

XLDnaute Barbatruc
Re : Trier automatiquement un classement par ordre croissant sans macro

Bonjour à tous,

Est-ce que =NB.SI(A$2:A$6;"<="&A2) signifie compter le nombre de cellules qui sont inférieures ou égales à A2 ?
Si oui, vu que A2=Kevin (ça veut dire quoi inférieur ou égal à Kevin ?)
Oui, ça veut dire ça, et sur du texte <= signifie "avant dans l'ordre alphabétique"

et qu'il n'y en a qu'un seul sur la plage A2:A6 pourquoi est-ce que le résultat renvoyé est 4 ????
Le 4 est le rang de la valeur en colonne B, c'est à dire le score initial sans intégrer l'ordre alphabétique, qui lui est pris en compte en colonne C
 

Claude38

XLDnaute Impliqué
Re : Trier automatiquement un classement par ordre croissant sans macro

bonjour tous,

Merci tototiti,je poste quand même ma tentative d'explication assez sommaire sur le fichier ou j'ai rajouté une colonne pour marquer le score initial en face du nom, j'ai recherché en vain un fichier de Jean-Marie détaillant le fonctionnement de nb.si

Bonne soirée
 

Fichiers joints

Choops

XLDnaute Occasionnel
Re : Trier automatiquement un classement par ordre croissant sans macro

Merci tototiti et Claude pour l'explication, maintenant c'est très clair !! Du coup la formule de la colonne C peut simplement être =B2-NB.SI($A$2:$A$6;"<="&A2)/10000 au lieu de =B2+LIGNES($1:1)/10000-NB.SI(A$2:A$6;"<="&A2)/1000 , je ne vois plus l'intérêt du +LIGNES($1:1)/10000 (j'ai peut être raté quelque chose) ?

Merci encore :)
 

FredLeDinosaure

XLDnaute Nouveau
Re : Trier automatiquement un classement par ordre croissant sans macro

J'avais un besoin identique, je suis tombé sur votre post, qui m'a donné des idées. Ci joint, ma contribution. Merci pour le NB.SI("<"&...), c 'est la clef de tout !
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas