Comment obtenir un classement sans ex aequo dans Google Sheets

Nous allons voir comment obtenir un classement sans ex aequo dans Google Sheets. Dans cet article, je vais vous expliquer les fonctions de classement disponibles dans Google Sheets, comment elles fonctionnent et comment les utiliser pour obtenir un classement sans ex aequo.

Les fonctions RANK.EQ et RANK.AVG

Dans Google Sheets, il existe deux fonctions de classement : RANK.EQ et RANK.AVG. Cependant, aucune de ces fonctions ne permet de gérer les ex aequo.

Lorsque vous utilisez ces fonctions, si deux personnes ont le même score ou la même note, leur classement sera le même. La première fonction renvoie le même classement, tandis que la deuxième renvoie la moyenne des classements.

Cela ne signifie pas pour autant qu’il est impossible d’obtenir un classement sans ex aequo dans Google Sheets. Nous pouvons utiliser la fonction RANK.EQ avec la fonction COUNTIF pour cela.

Classement sans ex aequo (formule non matricielle)

Nous pouvons attribuer un classement de haut en bas (ordre décroissant) ou de bas en haut (ordre croissant).

Dans l’ordre décroissant, la plus grande valeur aura le classement 1. Par exemple, un étudiant qui a obtenu 100 sur 100 sera classé 1, et celui qui a obtenu 99 sur 100 sera classé 2.

Dans l’ordre croissant, la plus petite valeur aura le classement 1. Par exemple, un étudiant qui a obtenu 99 sur 100 sera classé 1, et celui qui a obtenu 100 sur 100 sera classé 2.

Nous suivons généralement l’approche de haut en bas (ordre décroissant). Nous utiliserons cette approche dans l’exemple suivant de formule de classement sans ex aequo dans Google Sheets.

Haut en bas (ordre décroissant)

Dans l’exemple ci-dessus, les joueurs « Karen » et « Kristi » ont le même score, c’est-à-dire 5. Par conséquent, leur classement est 4.

La formule utilisée dans la cellule D2, que j’ai copiée jusqu’à la cellule D9, est la suivante :

=RANK.EQ(C2,$C$2:$C$9,0)

Dans cette formule, la référence de cellule C2 est la valeur, et la plage de cellules $C$2:$C$9 est la plage de données, selon la syntaxe de la fonction RANK.

La valeur doit être une référence relative, tandis que les données doivent être une référence absolue. En effet, lorsque nous faisons glisser la formule vers le bas, nous voulons que la référence de valeur change, mais pas la référence de la plage de données.

Pour obtenir un classement sans ex aequo dans Google Sheets, j’ai utilisé la combinaison suivante de RANK.EQ + COUNTIF dans la cellule E2, que j’ai copiée vers le bas :

=RANK.EQ(C2,$C$2:$C$9,0)+COUNTIF($C$2:C2,C2)-1

Bas en haut (ordre croissant)

Lorsque nous voulons trouver le classement des participants dans des événements sportifs tels que la course à pied, l’équitation et les courses automobiles, nous devons tenir compte du classement basé sur le temps d’arrivée (qui a fini premier).

Ainsi, la valeur la plus petite (le temps) dans les données sera classée 1.

Normalement, il n’y a pas d’ex aequo dans de telles compétitions serrées. Mais si tel est le cas, nous pouvons utiliser la formule suivante pour obtenir un classement sans ex aequo dans Google Sheets :

=D2: RANK(C2,$C$2:$C$9,1)
=E2: RANK.EQ(C2,$C$2:$C$9,1)+COUNTIF($C$2:C2,C2)-1

J’ai copié ces deux formules vers le bas. La seule différence par rapport aux deux premières formules est que j’ai spécifié 1 au lieu de 0 dans la partie is_ascending de la formule RANK.EQ.

Formule matricielle pour obtenir un classement sans ex aequo dans Google Sheets

Dans la formule matricielle, nous n’utilisons pas COUNTIF. Qu’utilisons-nous alors ? COUNTIFS. Mais la logique est similaire à celle de la formule non matricielle, c’est-à-dire l’ajout des occurrences avec les classements.

Insérez la formule suivante dans la cellule E2 (veuillez vous référer à l’image 1 ci-dessus) :

=ArrayFormula( IFNA( rank.eq(C2:C9,C2:C9,0)+ COUNTIFS(C2:C9,C2:C9,ROW(C2:C9),"<="&ROW(C2:C9)) -1 ) )

Les résultats s’étendront dans la plage E3:E9. Si la plage n’est pas vide, cela renverra une erreur #REF.

Rappelez-vous : Lorsque vous utilisez cette formule, elle attribue le classement 1 à la plus grande valeur dans les données.

Utilisez la formule suivante si vous souhaitez que le temps (valeur) le plus bas obtienne un classement plus élevé (veuillez vous référer à l’image 3) :

=ArrayFormula( IFNA( rank.eq(C2:C9,C2:C9,1)+ COUNTIFS(C2:C9,C2:C9,ROW(C2:C9),"<="&ROW(C2:C9)) -1 ) )

Explication de la formule

Dans la formule non matricielle, nous avons utilisé RANK.EQ et COUNTIF sous forme non matricielle. Ici, au contraire, nous utilisons des formules matricielles.

Vous trouverez ci-dessous une explication de la formule matricielle pour obtenir un classement sans ex aequo.

Il y a deux parties dans la formule :

Partie 1 :

rank.eq(C2:C9,C2:C9,0)

ou

rank.eq(C2:C9,C2:C9,1)

Partie 2 :

COUNTIFS(C2:C9,C2:C9,ROW(C2:C9),"<="&ROW(C2:C9))-1

Les deux parties ci-dessus utilisent la fonction ArrayFormula pour s’étendre.

La première partie renvoie le classement de tous les scores (veuillez vous référer à D2:D9 dans l’image 2), tandis que la deuxième fonction renvoie le compte des occurrences (veuillez vous référer à E2:E9 dans l’image 2).

Cela signifie que la Partie 1 est la version matricielle de RANK.EQ. Mais la Partie 2 peut vous être nouvelle. J’ai inclus les détails de la Partie 2 dans un autre article intitulé « Running Count in Google Sheets ».

En guise de note supplémentaire, j’ai une autre solution matricielle pour le déclassement dans le classement.

Bien que la combinaison RANK.EQ + COUNTIFS soit la plus simple, je la partage ici – « Flexible Array Formula to Rank Without Duplicates in Google Sheets ».

Voilà tout sur le classement sans ex aequo dans Google Sheets. Merci pour votre attention. Profitez-en !

Pour plus d’informations sur les classements et d’autres sujets liés à Google Sheets, visitez Crawlan.com.

Articles en lien