Trier et appliquer une condition
#1
Aspirant XLPages

Inscription: 07/03/2009

Messages: 35

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 05-12-2009 14h08
Bonjour à tous.

Je souhaite faire un tableau de challenge pour mes employés.

Je voudrais effectuer un tri automatique ou à partir d'un bouton sur des pourcentages et appliquer 1000 pts pour récompenser  les 5 premiers de la liste.

Si une bonne âme veuille bien m'aider.

Voici un exemple du tableau en copie.

Merci de vos réponses.

Michel.G
Pièce jointe:
xls tri auto.xls   [ Taille: 22.00 Ko - Téléchargements: 432 ]
Hors Ligne
Rapport   Haut 

Re: Trier et appliquer une condition
#2
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 05-12-2009 16h31
Bonjour mishka, le forum,

Ce n'est malheureusement pas du VBA comme tu semblais le souhaiter dans ton fichier, mais au cas où cela puisse t'aider quand même voici ci-joint un petit essai par formules permettant je crois de répondre à ta question.

A bientôt,

mth
Pièce jointe:
zip tri auto(2).zip   [ Taille: 8.93 Ko - Téléchargements: 457 ]
Hors Ligne
Rapport   Haut 

Trier et appliquer une condition
#3
Aspirant XLPages

Inscription: 07/03/2009

Messages: 35

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 05-12-2009 17h00
Merci MTh de votre rapidité.
C'est tout juste parfait.
Juste une question que dois je changer si je veux avoir 20 gagnants au lieu de 5?

J'ai essayé de cherché dans vos formules mais je n'ai pas réussi à trouver
de moi même à mon grand regret.

Merci de voter réponse.

Michel.G
Hors Ligne
Rapport   Haut 

Re: Trier et appliquer une condition
#4
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 05-12-2009 18h12
re :)

Voici une autre version avec plus de gagnants possibles.

Pour les formules utilisées:

. Les zones nommées "Nom" et "Resultat" utilisent les fonctions DECALER() et NBVAL() afin de les rendre dynamiques, l'article "Nommer une plage dynamique" et le fichier qui l'accompagne ICI fournissent des explications et exemples d'utilisation qui je l'espère pourront t'aider à les comprendre facilement.

. Dans la cellule I2 et tirée vers le bas, la formule qui permet d'avoir le classement:
=SI(NBVAL(E:E)();"";GRANDE.VALEUR(Resultat;LIGNES(I$2:I2)))
En la décomposant:

- La fonction LIGNE() indique le numéro de la ligne de référence, sur la ligne 2 =LIGNE() renvoie 2, sur la ligne 25 =LIGNE() renvoie 25.
- La fonction LIGNES() permet d'avoir le nombre de lignes de la zone en référence.
LIGNES(I$2:I2) renverra 1 car il il a une seule ligne dans cette plage. En tirant la formule vers le bas, LIGNES(I$2:I2) devient LIGNES(I$2:I3) puis LIGNES(I$2:I4) etc, le nombre de ligne augment de 1 à chaque fois, cette partie de la formule renvoie donc 1 puis 2 puis 3 etc ...
- NBVAL(E:E) indique le nombre de cellules non vides dans la colonne E
- Le test du début de la formule:
=SI(NBVAL(E:E)();""; etc ...)
permet de savoir si le nombre de lignes dans le tableau de gauche est inférieur ou pas à la ligne où se trouve la formule. Ainsi, si nous sommes sur la 15ème ligne alors qu'il n'y a que 12 participants, on renverra un vide (noté par deux guillemets l'un à coté de l'autre) et on évitera que la formule renvoie #NOMBRE!
Dans le cas contraire, on effectue la calul suivant:
=GRANDE.VALEUR(Resultat;LIGNES(I$2:I2))
- La fonction GRANDE.VALEUR() permet d'obtenir la x-ième plus grande valeur située dans la plage nommée Resultat.
x est calculé grace à la formule LIGNES() vue ci-dessus, la première fois on a donc la premère plus grande valeur de la zone "Résultat", sur la ligne du dessous la 2ème plus grande valeur, etc...


. En cellule H2 tirée vers le bas, cette formule permet de récupérer le nom de la personne ayant obtenu le score indiqué en colonne I:
=SI(I2="";"";INDEX(Nom;EQUIV(I2;Resultat;0);))
La fonction INDEX() va renvoyer la valeur trouvée dans la zone nommée "Nom" du premier tableau, la ligne sur laquelle se trouve cette valeur est calculée par la fonction EQUIV(). Tu peux aller voir l'aide excel qui est très bien sur cette fonction EQUIV(), sourire... sans oublier l'excellent fichier de notre ami Jean Marie sur la fonction INDEX() ICI

. La troisième formule en F3 tirée vers le bas utilise également les fonctions EQUIV() et INDEX():
=SI(ESTNA(EQUIV(A2;$H$2:$H$21;0));"";INDEX($J$2:$J$21;EQUIV(A2;$H$2:$H$21;0);))

simplement, en début de formule, le test permet de renvoyer un vide si la personne recherchée ne fait pas partie de la zone des 20 premiers.
Soit la personne existe dans cette liste et la fonction EQUIV() renverra le numéro de la ligne correspondante, soit elle n'existe pas et la fonction renvoie #NA.
La fonction ESTNA renvoie VRAI si le résultat de la fonction EQUIV() est #NA, et renvoie FAUX dans le cas contraire. SI le résultat est VRAI, pour éviter d'avoir de vilains #NA dans la colonne, on met un vide, si non on fait le calcul.

Voilà Michel, j'espère que ces commentaires pourront t'aider pour ton fichier et te souhaite une bonne soirée,

à bientôt,

mth


Pièce jointe:
zip tri auto(3).zip   [ Taille: 6.15 Ko - Téléchargements: 444 ]
Hors Ligne
Rapport   Haut 

Re: Trier et appliquer une condition
#5
Aspirant XLPages

Inscription: 07/03/2009

Messages: 35

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 05-12-2009 19h06
C'est exactement ce qu'il me fallait.

Je vous remercie de toutes ces explications.

Bonne soirée à vous.

Michel.G
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes