Maîtriser la formule RANG.EGAL pour classer vos données avec rangs identiques
=RANG.EGAL(nombre; réf; [ordre])La formule RANG.EGAL est une fonction statistique puissante d'Excel qui permet de classer des nombres au sein d'une plage de données. Contrairement à la fonction RANG classique qui attribue des rangs consécutifs, RANG.EGAL assigne le même rang à toutes les valeurs identiques, ce qui représente une approche plus équitable dans de nombreux contextes professionnels. Cette fonction est particulièrement utile lorsque vous travaillez avec des classements où les ex-aequo doivent être traités de manière égale. Dans les environnements professionnels modernes, la gestion des classements est omniprésente : évaluation des performances des employés, classement des produits par ventes, hiérarchisation des candidats, ou encore analyse comparative de métriques. RANG.EGAL résout élégamment la problématique des valeurs identiques en les plaçant au même niveau hiérarchique, tandis que les rangs suivants sont ajustés automatiquement. Cette fonction est disponible depuis Excel 2010 et demeure un outil incontournable pour les analystes de données et les gestionnaires. Comprendre le fonctionnement de RANG.EGAL vous permettra de créer des systèmes de classement robustes et justes, adaptés à vos besoins métier spécifiques. Que vous gériez un classement sportif, un système de notation ou une analyse de performance, cette formule deviendra rapidement un élément clé de votre arsenal Excel.
Syntaxe et paramètres
La syntaxe de RANG.EGAL suit le format : =RANG.EGAL(nombre; réf; [ordre]). Le paramètre 'nombre' (requis) représente la valeur que vous souhaitez classer au sein de votre ensemble de données. Ce nombre peut être une valeur directe, une référence cellulaire ou le résultat d'une formule. Le paramètre 'réf' (requis) est la plage de référence contenant toutes les valeurs à comparer. Il est crucial que cette plage soit absolue (avec des symboles $) si vous envisagez de copier la formule vers d'autres cellules, sinon les références se décaleront de manière indésirable. Le paramètre 'ordre' (optionnel) détermine le sens du classement : utilisez 0 (ou omettez-le) pour un classement décroissant où la plus grande valeur reçoit le rang 1, ou utilisez 1 pour un classement croissant où la plus petite valeur obtient le rang 1. La grande différence entre RANG.EGAL et RANG réside dans le traitement des valeurs identiques. Avec RANG.EGAL, si deux valeurs sont identiques, elles reçoivent exactement le même rang. Par exemple, si deux valeurs partagent le rang 3, la prochaine valeur différente recevra le rang 5 (et non 4). Cette fonction ignore les espaces et fonctionne uniquement avec des nombres ; les textes génèrent une erreur #VALUE!.
numberreforderExemples pratiques
Classement des performances de vente avec ex-aequo
=RANG.EGAL(B2;$B$2:$B$6;0)Cette formule classe le vendeur en B2 au sein de la plage B2:B6 en ordre décroissant (0). Les deux vendeurs avec 45 000€ reçoivent tous les deux le rang 2, et le vendeur suivant reçoit le rang 4.
Classement académique avec notes identiques
=RANG.EGAL(C3;$C$2:$C$8;1)Cette formule utilise l'ordre croissant (1) pour classer les notes de manière inverse : les notes les plus basses obtiennent le rang 1. Les trois étudiants avec 18/20 reçoivent le rang 6 (le plus haut), tandis que les autres sont classés en conséquence.
Classement des produits par nombre de retours
=RANG.EGAL(D2;$D$2:$D$50;0)Cette formule classe les produits selon le nombre de retours en ordre décroissant. Les produits avec le même nombre de retours reçoivent le même rang, permettant d'identifier rapidement les produits problématiques sans distinction artificielle.
Points clés à retenir
- RANG.EGAL attribue le même rang aux valeurs identiques, contrairement à RANG qui utilise des rangs consécutifs
- Les paramètres 'nombre' et 'réf' sont obligatoires ; 'ordre' est optionnel (0=décroissant par défaut, 1=croissant)
- Utilisez toujours des références absolues pour la plage de référence afin d'éviter les erreurs lors de la copie
- RANG.EGAL génère #N/A si la valeur n'existe pas dans la plage ; utilisez IFERROR pour gérer cette erreur
- Cette fonction est disponible dans Excel 2010+ et constitue l'outil idéal pour les classements équitables avec ex-aequo
Astuces de pro
Utilisez toujours des références absolues ($B$2:$B$10) pour la plage de référence quand vous copiez la formule verticalement. Cela garantit que chaque ligne compare à l'ensemble complet des données.
Impact : Évite les erreurs de calcul et les décalages de plage qui causent des rangs incorrects
Combinez RANG.EGAL avec COUNTIF pour créer un système de rupture de lien automatique : =RANG.EGAL(B2;$B$2:$B$10;0)+COUNTIF($B$2:B2;B2)-1
Impact : Génère des rangs consécutifs même pour les ex-aequo, utile si vous préférez éviter les sauts de rangs
Utilisez IFERROR pour gérer les valeurs manquantes : =IFERROR(RANG.EGAL(B2;$B$2:$B$10;0);"N/A"). Cela rend votre feuille plus robuste et professionnelle.
Impact : Améliore la lisibilité et prévient les messages d'erreur disgracieux dans vos rapports
Pour les très grandes plages (>10 000 lignes), testez les performances. RANG.EGAL peut être gourmand en ressources ; considérez un pivot table ou une base de données si la vitesse devient critique.
Impact : Optimise les performances de votre classeur et prévient les ralentissements
Combinaisons utiles
Identifier les 3 meilleurs avec RANG.EGAL et SI
=SI(RANG.EGAL(B2;$B$2:$B$10;0)<=3;"Top 3";"Autre")Cette combinaison identifie automatiquement les trois meilleures valeurs. Tous les ex-aequo au rang 3 ou inférieur sont marqués comme 'Top 3', ce qui est particulièrement utile pour les bonus ou reconnaissances.
Compter les valeurs avec le même rang que la cellule actuelle
=COUNTIF($B$2:$B$10;B2)Combinée avec RANG.EGAL, cette formule compte combien de valeurs partagent le même rang. Utile pour identifier les ex-aequo et gérer les cas limites dans les classements.
Créer un classement avec filtrage dynamique
=SI(RANG.EGAL($B$2:$B$10;$B$2:$B$10;0)<=LARGE($B$2:$B$10;3);RANG.EGAL($B$2:$B$10;$B$2:$B$10;0);"")Cette formule combine RANG.EGAL avec LARGE pour afficher uniquement les rangs des 3 meilleures valeurs. Parfait pour créer des tableaux de bord qui mettent en évidence les meilleurs performeurs.
Erreurs courantes
Cause : Le paramètre 'nombre' ou une valeur dans la plage 'réf' contient du texte au lieu d'un nombre. RANG.EGAL ne peut traiter que des valeurs numériques.
Solution : Vérifiez que toutes les cellules contiennent des nombres. Utilisez la fonction VALUE() pour convertir du texte en nombres si nécessaire, ou utilisez NETTOYER() pour éliminer les espaces indésirables.
Cause : La plage de référence 'réf' a été supprimée ou la formule contient une référence à une plage inexistante. Cela survient souvent lors de la suppression de colonnes ou lignes.
Solution : Recréez la formule avec les bonnes références ou restaurez les données supprimées. Utilisez toujours des références absolues ($) pour éviter ce problème lors de la copie de formules.
Cause : Le paramètre 'ordre' contient une valeur autre que 0 ou 1. Excel attend strictement 0 (décroissant) ou 1 (croissant).
Solution : Corrigez le paramètre 'ordre' en utilisant uniquement 0 ou 1. Vérifiez également que vous n'avez pas inversé l'ordre des paramètres.
Checklist de dépannage
- 1.Vérifiez que le paramètre 'nombre' existe réellement dans la plage 'réf' (sinon #N/A)
- 2.Confirmez que toutes les valeurs sont des nombres, pas du texte formaté en nombre
- 3.Assurez-vous que la plage de référence est absolue ($) si vous copiez la formule
- 4.Vérifiez le paramètre 'ordre' : utilisez 0 pour décroissant ou 1 pour croissant
- 5.Testez avec une plage simple (ex: A1:A5) pour isoler le problème avant de complexifier
- 6.Vérifiez que les espaces ou caractères invisibles ne polluent pas vos données numériques
Cas particuliers
Valeurs identiques à la limite du classement (ex: deux valeurs au rang 3 sur 5)
Comportement : RANG.EGAL attribue le rang 3 aux deux valeurs identiques, puis le rang 5 à la valeur suivante (rang 4 est ignoré)
Solution : C'est le comportement attendu et correct de RANG.EGAL
Cela peut sembler contre-intuitif mais c'est mathématiquement correct pour les rangs avec ex-aequo
Plage contenant des cellules vides ou des zéros
Comportement : Les cellules vides sont ignorées, les zéros sont traités comme des nombres valides et classés normalement
Solution : Nettoyez votre plage avant d'appliquer RANG.EGAL si vous ne voulez pas que les zéros soient classés
Utilisez IFERROR ou IF pour exclure les zéros si nécessaire
Utilisation de RANG.EGAL sur une plage avec dates (formatées comme nombres)
Comportement : Les dates sont converties en nombres de série Excel et classées correctement
Solution : Aucune action requise ; Excel gère automatiquement la conversion
Vérifiez que les dates sont au format Date et non Texte pour éviter les erreurs
Limitations
- •RANG.EGAL ne fonctionne qu'avec des nombres ; le texte génère une erreur #VALUE!
- •La fonction ne peut classer que dans deux sens (croissant ou décroissant) ; les classements personnalisés nécessitent des formules supplémentaires
- •Sur de très grandes plages (>100 000 lignes), les performances peuvent se dégrader ; envisagez des alternatives comme les pivot tables
- •RANG.EGAL ne gère pas les valeurs complexes (comme les matrices ou les plages multidimensionnelles) ; elle fonctionne uniquement avec des plages unidimensionnelles
Alternatives
Compatibilité
✓ Excel
Depuis 2010
=RANK.EQ(number; ref; [order]) en anglais, =RANG.EGAL(nombre; réf; [ordre]) en français✓Google Sheets
=RANK(value; data; [is_ascending]) - Google Sheets utilise RANK avec un paramètre booléenGoogle Sheets n'a pas RANK.EQ natif mais RANK fonctionne de manière similaire. Pour les ex-aequo stricts, utilisez COUNTIF comme alternative
✓LibreOffice
=RANK(value; array; [order]) - Syntaxe similaire mais sans distinction RANK.EQ