Tri automatique pour classement individuel

ctsblv

XLDnaute Nouveau
Bonjour
Je suis débutant sous excel ,mais depuis que j'ai trouvé votre forum j'ai appri bien des choses .Bravo et merci à tous les intervenants .Ceci est ma premiere
demande d'aide sur votre site.
Je suis licencié dans un club de tir (CTSBLV ,mon pseudo) et je voudrais améliorer la gestion des saisies des scores sans passer par des macros(si possible).

1 tri automatique lors de la saisie des scores(à ce jour il y a une macro soumise à la fin de la competition)
2 effectuer un Classement par equipe sur les 3 meilleurs scores.
- de 3 tireurs pas d'équipe .
Si vous avez des solutions merci de me détailler les formules je suis loin d'être un pro .
Merci d'avance et surtout continuez de garder la convivialite de ce site .

En PJ une des 9 feuilles du classeur.
 

Pièces jointes

  • Classeur1.xls
    39.5 KB · Affichages: 172
  • Classeur1.xls
    39.5 KB · Affichages: 174
  • Classeur1.xls
    39.5 KB · Affichages: 175

ctsblv

XLDnaute Nouveau
Re : Tri automatique pour classement individuel

Bonjour à tous
Cisco ,le dernier fichier a l'air OK j'ai ajouté F4/10^13 dans la formule.tout me parait bon ,mais je continue les tests.
pour les véritables ex-aequo ,ne serait-il pas possible de faire un test sur les valeurs du 1er ou du second afin de prendre les valeurs Nom et prenom qui n'ont pas été déjà classées ?
EX: si LUI AAA Aaaaaaaa est classé 1er ,ne plus le prendre en compte avec les formules suivantes .C'est à dire éliminer la ligne d'appartenence du score et du nom déjà prise en compte.
Non ne dis pas que je suis ch....t !!!
les solutions envoyées me conviennent ,c'est pour faire avancer le schmilblic .
Merci et à plus .
 

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Bonjour

Pour pouvoir afficher les véritables ex-aequo, normalement, on devrait pouvoir utiliser la formule
Code:
=SI(NB(F4:K4)=6;SOMME(F4:K4)[B]+LIGNE()/10^15[/B]+F4/10^13+G4/10^11+H4/10^9+I4/10^7+J4/10^5+K4/1000;"")
en tenant compte arbitrairement du numéro de la ligne pour différencier les vrais ex-aequo les uns des autres. En effet, la fraction LIGNE()/10^15 introduit une différence entre eux. Malheureusement, celle-ci est trop petite apparemment pour être prise en compte. Cela ne fonctionne pas.

J'ai donc introduit une colonne supplémentaire donnant le rang de chaque résultat, en tenant compte du poids attribué à chaque tir, et de LIGNE()/1000. Puis j'affiche le résultat en fonction de ce rang.

@ plus

PS : On pourrai aussi faire avec ALEA() à la place de LIGNE()
 

Pièces jointes

  • TirCtsblv1(1)modifié6.zip
    15.1 KB · Affichages: 39
  • TirCtsblv1(1)modifié6.zip
    15.1 KB · Affichages: 38
  • TirCtsblv1(1)modifié6.zip
    15.1 KB · Affichages: 43
Dernière édition:

ctsblv

XLDnaute Nouveau
Re : Tri automatique pour classement individuel

Bonsoir à tous
J'ai fait pas mal de tests et il se trouve que pour le classement par equipe,il y a le même problème de récuperation des noms de tireurs lorsque les scores sont identiques.
EX si OOOO de CTSBV a fait 554 et PPPP de CTSLV aussi dans nom1 et nom2
j'ai OOOO .
Les totaux eux sont bons.
A+
 

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Bonjour

Je vois que tu fais pas mal de tests... parceque, pour trouver des équipes ex-eaquo... Tu as bien raison.

Avec =INDEX(AF$4:AF$10;EQUIV(X4;AG$4:AG$10;0)), on rappelle le contenu de la cellule de la plage AF$4:AF$10 sur la même ligne que la première cellule en partant du haut de la plage AG$4:AG$10 contenant exactement la valeur de X4.

Si la valeur contenue dans X4 existe plusieurs fois dans la colonne AF$4:AF$10 (ce qui est le cas des vrais ex-aequo individuels, ou des équipes ex-eaquo), les résultats correspondants à la seconde, à la troisième... apparition de cette valeur contenue dans X4 ne seront jamais affichés.

Par conséquent, si on passe par INDEX(....;EQUIV(X4;... )), il faut faire le nécessaire pour que la valeur contenue dans X4 soit unique (même si à l'affichage à l'écran, on ne voit pas la différence).

Ceci peut être fait, par exemple, en ajoutant un petit truc à chaque résultat de la plage AG$4:AG$10, ce petit truc étant assez petit pour ne pas changer le classement effectué dans la colonne X, et différent d'une ligne à l'autre pour différencier les valeurs identiques.

Ex : On a le nombre 15 deux fois dans la plage AG$4:AG$10
Faire 15+1 ne convient pas car cela risque de changer le classement.
Faire 15+0,1 convient car cela ne change pas le classement dans le cas présent.
Par conséquent, on peut faire avec 15+0,1 pour un des 15, et 15+0,2 pour l'autre.

Pour automatiser la chose, on peut le faire avec 15 + LIGNE().


Ici, pour réutiliser la formule matricielle proposée par Monique, à valider avec Ctrl+maj+entrer, en AG4, puis à copier-coller vers le bas, on peut le faire avec
Code:
=SI(OU(AF4="";NB.SI($E$4:$E$50;AF4)<3);"";SOMME(GRANDE.VALEUR(SI($E$4:$E$50=AF4;$L$4:$L$50);{1;2;3}))[B][SIZE="4"]+LIGNE()/1000[/SIZE][/B])

A plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Re

D'ailleurs, au passage, cela serait peut être mieux de faire avec :
Code:
=SI(OU(AF4="";NB.SI($E$4:$E$50;AF4)<3);"";SOMME(GRANDE.VALEUR(SI($E$4:$E$50=AF4;[B][SIZE="4"]ENT[/SIZE][/B][COLOR="Red"]([/COLOR]$L$4:$L$50[COLOR="red"])[/COLOR]);{1;2;3}))+[B][SIZE="4"]LIGNE()/1000[/SIZE][/B])

ENT permettant de faire la somme des parties entières de la plage L$4:L$50 (Ne pas oublier que les chiffres après la virgule dans la colonne L ne sont là que pour différencier les pseudo-ex-aequo. Ce ne sont pas de "vrais" points).

Cela semble ne rien changer aux résultats ici car on additionne que les trois meilleurs résultats, ce qui fait que le total est au maximum, augmenté de 0,3 (par ex 152,08 + 120,07 + 145,08 alors qu'on devrait avoir 152 + 120 + 145). Mais bon, par précaution... cela ne coûte pas cher de rajouter ENT() dans la formule, pour vraiment faire la somme avec 152, 120 et 145.

@ plus
 
Dernière édition:

ctsblv

XLDnaute Nouveau
Re : Tri automatique pour classement individuel

Bonjour Cisco
c'est ok pour la dernière modif .Je suis tombé sur ce cas en faisant des copiés collés de zones .
Et là Pb pour récupérer les nom1 2 et 3 .
Aucun PB pour les Equipes et le total .
J'espère que le zip sera bon .
Merci et A+
 

Pièces jointes

  • TirCtsblv1(1)modifié4.zip
    15.5 KB · Affichages: 37

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Bonsoir

Pour le moment, je n'avai pas sérieusement regardé cette partie du fichier, et, effectivement, il y a encore des erreurs.

Pour l'équipe QQQQQ, ne serait-ce pas plutot UUUU, TTTT, QQQQ ou UUUU, QQQQ, TTTT, puisque QQQQ et TTTT ont le même nombre de points, 544, alors que UUUU en a 553 (ou alors c'est que tu les classes par ordre croissant )?

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Re

Tu n'as pas utilisé le fichier permettant de différencier les vrais ex-eaquo, en individuel, et donc de les afficher tous. Est-ce fait expres ?

En pratique, c'est toujours le même problème : Si la valeur la plus grande pour l'équipe QQQQQ est 553,092, excel, avec la formule INDEX(...EQUIV()) telle qu'elle est rédigée pour le moment, va aller rechercher une donnée sur la première ligne contenant 553,092, même si cela ne correspond pas à l'équipe QQQQQ. Ici, on trouve PPPP de l'équipe OOOOO.

Si cette colonne supplémentaire te gêne vraiment, j'essayerai de trouver une autre méthode.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Rebonsoir à tous

Ci-joint, deux fichiers, l'un qui tient compte des vrais ex-eaquo, et l'autre, non. A tester davantage. En rouge, les cellules changées.

@ plus
 

Pièces jointes

  • TirCtsblv(1)diffvrai ex aequo.zip
    18.3 KB · Affichages: 33
  • TirCtsblv(1)sansdiffvrai ex aequo.zip
    16.2 KB · Affichages: 32
Dernière édition:

ctsblv

XLDnaute Nouveau
Re : Tri automatique pour classement individuel

Bonsoir
Pour la colonne ex aequo ,je la garde .Je te joint le fichier que j'ai modifié dans la journée .Je ne garderai que le classement individuel et le classement par equipe pour l'impression des résultats .
Je n'ai pas encore testé les fichiers joints ,mais celà m'a l'air correct .
Je te tient au courant .
Encore merci de ta patience et ta disponibilité .
A+
 

Pièces jointes

  • TirCtsblv1(1)modifié6.zip
    23.3 KB · Affichages: 32
  • TirCtsblv1(1)modifié6.zip
    23.3 KB · Affichages: 32
  • TirCtsblv1(1)modifié6.zip
    23.3 KB · Affichages: 32

ctsblv

XLDnaute Nouveau
Re : Tri automatique pour classement individuel

Bonjour Cisco ,Monique et les autres
Après tests ,tout me semble OK .
Je joint le fichier dans sa forme presque définitive .
Vous avez fait du bon boulot merci ,moi il me reste les finitions ;
qq onglets à rajouter dans le fichier .Je pense que je ne pourrai pas le mettre en ligne ,celui que je joint fait déjà 46K .
A+
PS :J'accepte toutes remarques sur ce fichier .
 

Pièces jointes

  • TirCtsblv(1)7.zip
    45.4 KB · Affichages: 45

CISCO

XLDnaute Barbatruc
Re : Tri automatique pour classement individuel

Bonjour à tous, bonjour ctsblv

Attention, il y a une petite erreur dans la plage Z4:Z9 :

Il faut écrire :
Code:
=SI(NB(L$4:L$9)<P4;"";ENT(GRANDE.VALEUR(L$4:L$9;P4)[COLOR="red"][SIZE="3"])[/SIZE][/COLOR]+LIGNE()/1000)


et non
Code:
=SI(NB(L$4:L$9)<P4;"";ENT(GRANDE.VALEUR(L$4:L$9;P4)+LIGNE()/1000)[COLOR="Red"][SIZE="3"])[/SIZE][/COLOR]

Dans ce dernier cas, le +LIGNE()+1000 ne sert à rien, puisqu'on prend la partie entière !

Je corrige dans les 2 fichiers, que j'ai posté un peu plus haut, contenant cette formule.

@ plus
 

ctsblv

XLDnaute Nouveau
Re : Tri automatique pour classement individuel

Bonsoir à tous
Pour la MFC ,je verrai un peu plus tard,j'ai peur de creer un monstre ;je vais avoir une dizaine de feuilles dans le classeur .
Je joint le fic pistolet 10m tel qu'il se présentera .
La formule pour le classement sur 400 ne fonctionne pas ;elle me renvoie #valeur .
A+
 

Pièces jointes

  • TirCtsblv8TEST.zip
    30.8 KB · Affichages: 43

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise