Qu'est-ce que la fonction RANG ?
RANG (RANK en anglais) te sert dès que tu veux connaître la position d'une valeur dans un classement sans trier ta feuille ni compter à la main combien de lignes la dépassent. Tu gardes tes données dans leur ordre d'origine, et chaque ligne affiche quand même son rang réel.
Concrètement, tu l'utilises pour classer tes commerciaux par chiffre d'affaires et afficher le rang à côté de chaque nom, identifier les 3 salaires les plus élevés pour un audit RH, trier des temps de réponse serveur du plus rapide au plus lent, ou gérer les ex-aequo dans un classement scolaire où deux élèves ont la même note. C'est une fonction dite « héritée » (remplacée officiellement par RANG.EQUIV depuis Excel 2010), mais elle reste présente dans toutes les versions et fonctionne parfaitement dans la quasi-totalité des cas.
Syntaxe
Clique sur un argument pour aller à son explication.
RANG est une fonction héritée, officiellement remplacée par RANG.EQUIV depuis Excel 2010. Elle reste disponible dans toutes les versions pour compatibilité, mais les nouveaux classeurs peuvent avantageusement utiliser RANG.EQUIV.

Comprendre chaque paramètre de la fonction RANG
RANG attend d'abord la valeur à classer, puis la plage où elle vit, et enfin le sens du tri. Seul ce dernier argument est facultatif : laissé vide, Excel classe du plus grand au plus petit, donc tu n'as besoin de le préciser que pour inverser (les temps, les coûts, ce genre de cas où le plus petit gagne).
La plage du milieu, elle, mérite toute ton attention : c'est sur elle que tu poses les $ pour qu'elle ne bouge pas quand tu recopies la formule vers le bas.
nombre
: c'est la valeur dont tu veux connaître le rangÇa peut être une référence de cellule comme B2 ou une valeur directe comme 85. Excel va chercher cette valeur dans la plage de référence pour déterminer sa position.
Si la valeur n'existe pas dans la plage de référence, RANG retourne l'erreur #N/A. Vérifie que ta cellule est bien incluse dans la plage.
référence
: c'est la plage de cellules contenant toutes les valeurs à classerTu dois TOUJOURS utiliser une référence absolue ici, comme $B$2:$B$20. Si tu ne mets pas les signes $, ta formule donnera des résultats incorrects quand tu la copieras vers le bas.
Excel ignore les cellules vides et les textes dans cette plage : seules les valeurs numériques entrent dans le classement.
Attention : C'est l'erreur numéro 1 avec RANG : oublier les $ dans la référence. Sans eux, la plage se décale quand tu copies la formule et tout le classement devient faux. Appuie sur F4 après avoir sélectionné la plage pour ajouter les $ automatiquement.
[ordre]
: détermine le sens du classement(facultatif)Deux valeurs possibles : 0 ou omis pour un classement décroissant (la plus grande valeur obtient le rang 1, c'est le comportement par défaut), et 1 pour un classement croissant (la plus petite valeur obtient le rang 1, idéal pour des temps de course ou des coûts).
Retiens ceci pour ne plus confondre : ordre 0 = le plus grand gagne (comme au foot avec les buts). Ordre 1 = le plus petit gagne (comme au golf ou pour les temps de réponse).

Exemples pratiques pas à pas
Comment créer un classement avec la fonction RANG
La réunion commerciale commence dans une heure et on te demande qui est en tête. Ton tableau liste chaque commercial avec son équipe, sa région et son montant de ventes, et tu veux la position de chacun dans la colonne Rang, sans rien trier. La fonction RANG compare chaque montant à toute la colonne et sort le classement complet, du plus gros vendeur au plus petit.
- 1Dans une cellule, écris
=RANG(. - 2En 1er argument : clique sur le montant de ventes de la ligne,
D2. C'est la valeur dont la fonction va chercher la position, et la pointer plutôt que de retaper 24 500 € permet à la formule de suivre chaque commercial à la recopie. - 3En 2ᵉ argument : sélectionne la plage qui contient tous les montants du classement,
$D$2:$D$19. Les$la verrouillent pour qu'elle ne se décale pas quand tu recopies la formule vers le bas, sans quoi chaque ligne serait comparée à un groupe différent. - 4Ferme la parenthèse et appuie sur Entrée. Faute de troisième argument, Excel classe du plus grand au plus petit, exactement ce qu'on attend d'un classement de ventes.
=RANG(D2; $D$2:$D$19)D2) à tous les montants de la colonne et compte combien de commerciaux font mieux. Marie Dubois en a neuf devant elle, donc son rang est 10. Recopiée vers le bas, la formule classe les 18 commerciaux d'un coup.Comment classer du plus petit au plus grand avec la fonction RANG
Un client s'impatiente sur ses délais et tu dois savoir quel transporteur est le plus rapide avant de le rappeler. Ton tableau donne le délai moyen de livraison de chaque transporteur en heures, et tu veux un classement où le plus rapide arrive premier. La fonction RANG sait inverser le sens du tri, il suffit de lui préciser que le plus petit doit gagner.
- 1Dans une cellule, écris
=RANG(. - 2En 1er argument : clique sur le délai moyen de la ligne,
B2. C'est le temps dont tu veux la position, ici les 18 heures de Rapidis. - 3En 2ᵉ argument : sélectionne la plage de tous les délais,
$B$2:$B$6. Les$la figent pour qu'elle reste identique sur toute la colonne à la recopie. - 4En 3ᵉ argument : saisis
1pour classer du plus petit au plus grand. C'est lui qui fait gagner la plus petite valeur, alors que0ou rien du tout ferait gagner la plus grande, un réglage indispensable quand le plus rapide doit finir premier. - 5Ferme la parenthèse et appuie sur Entrée.
=RANG(B2; $B$2:$B$6; 1)1 en troisième argument, la fonction classe à l'envers : le délai le plus court prend le rang 1. Rapidis livre en 18 heures et seul ExpressLine fait mieux, d'où son rang 2. Sans ce 1, c'est le transporteur le plus lent (41 heures) qui serait premier.Comment gérer les ex-aequo avec les fonctions RANG et NB.SI
Le conseil de classe est demain et deux élèves ont exactement la même note, ce qui bloque ton palmarès. Ta liste donne la note sur 20 de chaque élève, et tu veux un rang différent pour chacun, sans égalité ni numéro qui saute. La fonction RANG attribue le même rang aux notes identiques, et la fonction NB.SI ajoute juste ce qu'il faut pour départager selon l'ordre d'apparition dans la liste.
- 1Dans une cellule, écris
=RANG(. - 2En 1er argument : clique sur la note à classer,
B2. C'est la note de la première ligne, et la fonction RANG lui attribuera le même rang qu'à toute autre note identique. - 3En 2ᵉ argument : sélectionne la plage des notes,
$B$2:$B$6. Les$la verrouillent pour qu'elle reste la même sur toute la colonne. À ce stade, Emma et Léa se partagent encore le rang 1. - 4Ferme la parenthèse de la fonction RANG, complète par
+ NB.SI($B$2:B2; B2) - 1, puis appuie sur Entrée. La fonction NB.SI compte combien de fois la note apparaît entre le haut de la liste et la ligne courante, et la plage$B$2:B2, verrouillée d'un seul côté, s'étire toute seule à mesure que tu recopies. On retire1parce que ce comptage inclut déjà la note de la ligne, ce qui décalerait sinon la toute première occurrence.
=RANG(B2; $B$2:$B$6) + NB.SI($B$2:B2; B2) - 116 est déjà apparue depuis le haut de la liste. Pour Emma c'est la première fois, elle garde le rang 1 ; pour Léa c'est la deuxième, son rang passe à 2 et le palmarès n'a plus aucun ex-aequo.Comment éviter l'erreur #N/A avec les fonctions RANG et SIERREUR
Tu t'apprêtes à envoyer le classement des ventes à toute l'équipe et deux #N/A s'étalent en plein milieu du tableau. Deux commerciaux n'ont pas encore remonté leurs chiffres, leur cellule Ventes est donc vide et la fonction RANG n'a rien à classer. En glissant la fonction RANG dans une fonction SIERREUR, tu remplaces l'erreur par un texte lisible et le tableau redevient présentable.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris le classement à tenter et referme-le,
RANG(B2; $B$2:$B$6). C'est le calcul qu'Excel essaie d'abord, et il échoue en#N/Aquand la celluleB2est vide, car la fonction RANG cherche alors un zéro absent de la plage. - 3En 2ᵉ argument : saisis ce qui s'affiche quand le calcul échoue,
"Non classé". Les guillemets sont obligatoires pour qu'Excel traite ces mots comme du texte à afficher. - 4Ferme la parenthèse de la fonction SIERREUR et appuie sur Entrée. Celle de la fonction RANG a déjà été refermée à l'étape précédente.
=SIERREUR(RANG(B2; $B$2:$B$6); "Non classé")0 dans la plage, ne l'y trouve pas et renvoie l'erreur #N/A. La fonction SIERREUR intercepte cette erreur et affiche « Non classé » à la place. Marie Dubois, elle, a bien un montant, donc son rang 2 s'affiche normalement.
Astuces avancées avec RANG
Crée un rang unique sans ex-aequo
Pour que chaque valeur ait un rang différent même en cas d'égalité, utilise =RANG(B2; $B$2:$B$10) + NB.SI($B$2:B2; B2) - 1. NB.SI ajoute un incrément basé sur l'ordre d'apparition : la valeur qui apparaît en premier garde l'avantage.
Copiée vers le bas, la formule garantit que deux lignes ne partagent jamais le même rang.
Affiche automatiquement le nom du gagnant
Pour récupérer le nom associé au rang 1, combine RANG avec INDEX et EQUIV : =INDEX($A$2:$A$10; EQUIV(1; $C$2:$C$10; 0)), où C2:C10 contient les rangs calculés. EQUIV localise la position du rang 1, INDEX retourne le nom correspondant.
Si deux valeurs sont ex-aequo au rang 1, la formule retourne le premier trouvé dans la liste.
Exprime le rang en pourcentage
Pour classer en top 10 %, top 25 %, etc., divise le rang par le nombre total de valeurs : =RANG(B2; $B$2:$B$10) / NB($B$2:$B$10). Formate la cellule en pourcentage pour un affichage immédiat. RANG.POURCENTAGE fait le même calcul en une seule fonction.
Un résultat de 0,11 signifie que la valeur est dans le top 11 % de la liste.

Les erreurs fréquentes avec la fonction RANG
Avec RANG, presque tous les soucis viennent de deux endroits : la plage qui se décale et l'ordre du classement. Oublier les $ sur la référence reste de loin le piège le plus courant, parce que la formule a l'air juste sur la première ligne avant de tout fausser une fois recopiée.
Les deux autres cas sont plus discrets : un #N/A quand la valeur cherchée n'est pas dans la plage, et un classement à l'envers quand tu oublies que le réglage par défaut fait gagner le plus grand.
Plage de référence sans références absolues
Si tu écris =RANG(B2; B2:B10) sans les $, la plage se décale quand tu copies la formule. En B3, elle devient B3:B11, ce qui fausse tout le classement. C'est l'erreur numéro 1 avec RANG.
Solution : Utilise toujours =RANG(B2; $B$2:$B$10). Les $ bloquent la plage. Appuie sur F4 après avoir sélectionné la plage pour ajouter automatiquement les $.
Erreur #N/A : valeur cherchée absente de la plage
Si le nombre que tu cherches n'existe pas dans la plage de référence, RANG retourne l'erreur #N/A. Ça arrive souvent quand ta plage est trop courte ou que tu compares des données issues de sources différentes.
Solution : Vérifie que la plage de référence contient bien la valeur. Utilise =SIERREUR(RANG(A2; $A$2:$A$10); "Non trouvé") pour afficher un message clair au lieu d'une erreur.
Classement inversé : le bon résultat mais dans le mauvais ordre
Beaucoup oublient que par défaut (ordre = 0 ou omis), RANG classe du plus grand au plus petit. Si tu classes des temps, des coûts ou des erreurs où le plus petit gagne, tu obtiens un classement inversé.
Solution : Ajoute 1 comme troisième paramètre quand le plus petit doit gagner : =RANG(A2; $A$2:$A$10; 1). Ce paramètre inverse l'ordre du classement.

RANG vs RANG.EQUIV vs GRANDE.VALEUR vs PETITE.VALEUR
Tu choisis selon ce que tu veux récupérer. Si tu cherches la position d'une valeur, reste sur RANG (ou RANG.EQUIV si ton classeur cible Excel 2010 et plus, c'est son remplaçant officiel). Si tu veux directement la valeur du 1er, du 2e ou du 3e sans passer par son rang, prends GRANDE.VALEUR pour le haut du classement et PETITE.VALEUR pour le bas.
À noter : seules RANG et RANG.EQUIV savent inverser le sens du tri avec un troisième argument. GRANDE.VALEUR et PETITE.VALEUR, elles, te répondent toujours par une valeur, jamais par une position.
| Critère | RANG | RANG.EQUIV | GRANDE.VALEUR | PETITE.VALEUR |
|---|---|---|---|---|
| Objectif | Rang d'une valeur | Rang d'une valeur | Nième plus grande | Nième plus petite |
| Gestion ex-aequo | Même rang pour tous | Rang moyen | Retourne la valeur | Retourne la valeur |
| Ordre inversible | ✅ Oui (param 3) | ✅ Oui (param 3) | ❌ Non | ❌ Non |
| Retour | Position (nombre) | Position (nombre) | Valeur | Valeur |
| Disponibilité | Toutes versions | Excel 2010+ | Toutes versions | Toutes versions |
Questions fréquentes
Oui, les valeurs égales reçoivent le même rang. Si deux personnes ont le score le plus élevé, elles seront toutes deux classées 1res, et la suivante sera 3e (pas 2e). Pour départager les ex-aequo, utilise RANG.POURCENTAGE ou combine RANG avec NB.SI : =RANG(A2; $A$2:$A$10)+NB.SI($A$2:A2; A2)-1.
Par défaut, RANG classe du plus grand (rang 1) au plus petit. Pour inverser et classer du plus petit au plus grand, ajoute 1 comme troisième paramètre : =RANG(A1; A1:A10; 1). Très utile pour classer des temps de course où le plus rapide gagne, ou des délais où le plus court est meilleur.
C'est normal ! Si deux valeurs sont classées 1res ex-aequo, la valeur suivante sera 3e. Excel réserve toujours autant de rangs qu'il y a de valeurs. C'est la méthode de classement standard utilisée dans le sport et la plupart des concours. Pour des rangs consécutifs sans trou, utilise la formule avec NB.SI pour briser les égalités.
Combine RANG avec NB.SI pour briser les égalités : =RANG(A2; $A$2:$A$10)+NB.SI($A$2:A2; A2)-1. Cette formule ajoute un incrément basé sur l'ordre d'apparition pour garantir que chaque valeur a un rang différent. La première valeur égale en position haute garde l'avantage.
Oui ! Utilise toujours des références absolues ($A$2:$A$10) pour la plage de référence. Sinon, quand tu copies la formule vers le bas, la plage se décale et tes rangs deviennent faux. C'est l'erreur numéro 1 avec RANG. Appuie sur F4 après avoir sélectionné la plage pour ajouter les $ automatiquement.
Pour aller plus loin
Continue sur ta lancée après la fonction RANG : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir





