Rang a partir d'une formule de comparaison

Bonjour,

je suis en train d'essayer de mettre en place un système pour obtenir automatiquement le classement pour une compétition d'escalade (la partie qui est difficile c'est la catégorie difficulté, les autres (bloc et vitesse suivront toutes seules).

Ma question est la suivante :

  • si je prends 2 participants A et B, je sais écrire une (grosse) formule (faisant référence à plein de cellules, y compris d'une autre feuille) qui me renvois -1 si A<B , 0 si A=B, 1 si A>B (les inégalités étant au sens du classement).
  • comment à partir de ça obtenir le classement de chacun?

Si ce n'est pas assez clair, voici le détail :

Il y a 8 voies (5b(le plus facile), 5c, 6a, 6b, 6c, 7a, 7b, 7c(le plus dur)).

Une voie est considérée comme réussie si on l'a réussie (bien sur), ou si 3 voies de niveau supérieur et consécutifs ont été réussies.

Chaque voie donne 1000/(nbr_de_réussites_de_la_voie +1) points.

Le classement se fait au nombre total de points.

Jusqu'à là, ça va.

Le problème est qu'avec ce système, il y a de grand risques d'égalités y compris dans les têtes de classements (ce qui est embêtant pour la remise des prix). On a donc décidé de plusieurs critères visant à départager (en particulier les meilleurs, les égalités parmi les moins bon ne gênant pas). On regarde dans l'ordre:

  • celui qui a réussi la voie la plus dure gagne
  • celui qui a eut besoin du moins d'essais pour réussir sa voie la plus dure gagne
  • celui qui a mis le plus de dégaines (en gros, qui est allé le plus haut) sur la cotation (=difficulté) juste au dessus de la voie la plus dure qu'il a réussit gagne
  • celui qui a mis le moins de temps pour faire sa voie la plus dure qui gagne
(à noter, seul le premier critère est appliqué sur tout le classement, pour les 3 suivants, on ne prend en compte que la 7a, la 7b et la 7c, étant donné que le chronométrage nécessite un arbitre supplémentaire)

On peut donc assez facilement comparer A et B avec une formule de la forme:

SI(pointsA<pointsB;
   -1;
   SI(pointsA>pointsB;
      1;
      SI(voieMaxA<voieMaxB;
         -1;
         etc.
      )
   )
)

Mais comment à partir de là obtenir le classement, j'ai pas trouvé.

Pour l'instant, le mieux que j'ai trouvé, c'est:

  • je calcule le classement aux points avec la fonction RANG (disons en colonne A)
  • je mets un nombre correspondant à la voie la plus dure en colonne B (de 1 pur 5b à 8 pour 7c)
  • je calcule le classements aux points+voie maxi en colonne C avec la formule suivante:
A1 + NB.SI.ENS(
       $A$1:$A$100  ;  "="&A1 ;
       $B$1:$B$100  ;  "<"&B1
) 

-puis je recommence avec le critère suivant : ça marche, mais c'est très moche

Est ce que quelqu'un aurait une idée comment faire ça plus élégamment?

Merci d'avance

Sandro

PS : en pièce joint mon fichier excel : les réussites sont à entrer en feuille 1 (sous la cotation ou "réussie", on met le nombre d'essais) et les calculs se font en feuille 3

Bonjour Sandro

Etant adepte de l'escalade (et cordiste), j'ai commencé à regarder ton problème (effectivement le système de notation est "peu" compliqué)

Je pense qu'une bonne solution (pour commencer) serait de nommer les cellules. Cela évitera des formules à rallonge telles que

=SOMME.SI(LC(-28):LC(-21);"=1";L3C4:L3C11)

qui peuvent devenir (au moins) bcp plus lisible

=somme.si(somPointReussite;"=1";L3C4:L3C11)

dans un 2ème tps l'utilisation des tableaux automatiques devrait pouvoir simplifier aussi les formules....

je suis en train de regarder dans (ces 2) sens mais il faut que je m'imprègne de tes méthodes de calculs

Patience

En espérant t'avoir orienté sur la voie (7c) de la résolution... !

Merci beaucoup pour ces 2 pistes.

Pour ça qui est de nommer les cellules, ça devrait en effet faciliter la relecture.

Par contre pour les tableaux automatiques, je suis pas sur de voir de quoi tu parle (Google renvois de tout). Tu parle des tableaux où il suffit de cliquer sur une colonne pour trier en fonction de celle-ci? Si oui, j'ai peur que ça ne m'avance pas énormément (ou alors je ne vois pas comment) : en effet, il me semble que ça ne trie que selon un seul critère (ce qui ne me suffit pas).

Merci d'avance et bonne soirée

Sandro

Bonjour Sandro


Et oui il est déjà ce matin !


Oui je parle bien des ces tableaux là !

Mais dans un souci de simplification des formules

Par exemple

=si(LC(-1)>LC(+3);LC(1);LC(6)+LC(-3))

est beaucoup plus compliqué à lire (et surtout à relire) que

=SI([@PTS]>[@PTS MAXI];[@PTS BONUS];[@PTS MINI]+|@PTS BASE])

il y a un peu moins de parenthèses en tout cas ! et ça m'évite de me remémorer mes débuts en C ou pire encore en LISP (d'ailleurs en ce temps là LISP voulait dire Lot of Insipide and Stupid Parenthesis)

et en plus je travaille toujours en formules L1C1 et jamais en $A$1


Je pense qu'il sera judicieux d'utiliser aussi des noms effectivement.

J'ai d'ailleurs déjà nommé quelques plages (et cette action est encore simplifiée avec l'utilisation des tableaux puisque l'on sait immédiatement à quoi on fait référence)

Voilà j'y travaille... (mais ça fait un moment que je n'ai pas fait d'escalade de ce genre)

Rechercher des sujets similaires à "rang partir formule comparaison"