Petite question sur la fonction Rang

  • Initiateur de la discussion Initiateur de la discussion mnounette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mnounette

XLDnaute Nouveau
Bonjour a tous,

Je poste une question bébête a propos des Rangs je m'en excuse 😱 je n'ai pas l'habitude d'Excel 🙁 et j'ai passé ma matinée à rechercher sur le net..

Je souhaite tout simplement générer les rangs (contiguës) d'une plage de cellules, mais au sens inverse :

Exemple :
Pour une plage 15 17 12 12 12 10 je souhaiterais avoir 3 4 2 2 2 1.
J'ai trouvé un exemple sur le forum ici, mais vu que ce n'était pas commenté je n'ai pas compris le sens des fonctions et donc je n'ai pas pu l'adapter pour qu'il fonctionne à l'envers 🙁.

voici la formule utilisée dedans:
Code:
 =SI(B2="";"";SOMME(SI(B$2:B$20>B2;1/NB.SI(B$2:B$20;B$2:B$20)))+1)
elle donne pour mon exemple précédent 2 1 3 3 3 4 , je voudrais inverser comme ceci: 3 4 2 2 2 1.

Je vous remercie, et m'excuse pour cette question de newbie 😱
 
Re : Petite question sur la fonction Rang

Bonjour mnounette,

Bienvenue sur XLD,

En effet, jolie formule de Monique
Même si je ne comprend pas tout (et que j'aurais été incapable de créer la formule) je crois qu'il te suffit de changer le ">" en "<" pour obtenir le résultat voulu
 
Détail sur la fonction Rang

Bonjour à toi jeune Padawan 😉

Si ta série de nombre est écrite dans les cellules [A1...A6]

Si tu veux le rang dans l'ordre décroissant :
Code:
=RANG(A1;$A$1:$A$6;0)
ou
Code:
=RANG(A1;$A$1:$A$6)

Si tu veux le rang dans l'ordre croissant :
Code:
=RANG(A1;$A$1:$A$6;1)
ou
Code:
=RANG(A1;$A$1:$A$6;2)
ou
Code:
=RANG(A1;$A$1:$A$6;3)
ou
Code:
...

En clair :
=RANG(le nombre dont tu veux connaître le rang;la zone où se situe ta liste;Ordre croissant ou décroissant)

Si tu veux l'ordre décroissant : ne rien mettre ou écrire 0
Si tu veux l'ordre croissant : toute valeur différente de zéro

Pour information, compte tenu que tu as des nombres "ex-aequo" :
-> dans l'ordre croissant cela donne : 5 - 6 - 2 - 2 - 2 - 1
-> dans l'ordre décroissant : 2 - 1 - 3 - 3 - 3 - 6

Et non pas 3 4 2 2 2 1, ou 2 1 3 3 3 4

Bonne après midi
 
Re : Petite question sur la fonction Rang

Re bonjour a tous, je ne m'attendais pas a des réponses aussi rapides! Ce forum m'étonne Bravo.

Pour la formule, j'ai déjà essayé de changer le ">" par "<" intuitivement, mais ça n'a pas donné le résultat escompté, ça me donne une erreur de div/0 impossible, je me suis dit qu'il faudrait changer d'autre chose aussi dans la formule mais j'ignore ce que c'est.

Concernant la fonction Rang , je ne l'ai pas utilisée justement car elle "saute" les rangs lorsqu'il y a des ex-æquo, je voudrais que ce soit pluton des rangs contiguës. des 2 1 3 3 3 4 et non 2 1 3 3 3 6.

Merci encore.
 
Re : Petite question sur la fonction Rang

Bonjour à tous,

Amusant de voir qu'on est si nombreux à admirer cette formule de Monique.
J'avais commencé comme excel lent avant de me rendre compte que tu ne voulais pas tenir compte des ex aequo.
Je confirme que ça fonctionne avec : =SI(A1="";"";SOMME(SI(A$1:A$6<A1;1/NB.SI(A$1:A$6;A$1:A$6)))+1)
a condition de VALIDER AVEC CTRL+MAJ+ENTREE : il faut voir les {} autour de la formule après validation
on peut ensuite recopier vers le bas

Cordialement
 
Re : Petite question sur la fonction Rang

Bonjour,

si ta plage commence à B2
tu met en D2
Code:
=SI(RANG(B2;$B$2:$B$7;1)=SOMMEPROD(($B$2:$B$7>0)*($B$2:$B$7=$B$3:$B$8));RANG(B2;$B$2:$B$7;1);ABS(RANG(B2;$B$2:$B$7;1)-SOMMEPROD(($B$2:$B$7>0)*($B$2:$B$7=$B$3:$B$8))))
 
Re : Petite question sur la fonction Rang

Bonjour,

si ta plage commence à B2
tu met en D2
Code:
=SI(RANG(B2;$B$2:$B$7;1)=SOMMEPROD(($B$2:$B$7>0)*($B$2:$B$7=$B$3:$B$8));RANG(B2;$B$2:$B$7;1);ABS(RANG(B2;$B$2:$B$7;1)-SOMMEPROD(($B$2:$B$7>0)*($B$2:$B$7=$B$3:$B$8))))


Merci je vais essayer votre formule, même si elle est trop complexe pour moi car j'ai encore le cœur fragile à l'Excel 😀 !
 
Re : Petite question sur la fonction Rang

Bonjour,
ça fonctionne si tu utilises la plage A2:A16 au lieu de A2:a20

Dans le fil d'origine, il est bien expliqué que s'il y a des cellules vides il faut utiliser une autre formule qui donne ceci dans ton fichier :

=SI(ESTNUM(B2);SOMME(SI(B$2:B$20<B2;SI(ESTNUM($B$2:$B$20);1/NB.SI(B$2:B$20;B$2:B$20))))+1;"")
toujours en matriciel

Cordialement
 
Re : Petite question sur la fonction Rang

Bonjour à tous,

Adapte la plage à tes cellules renseignées :



A+ à tous



En effet quand je mets la taille exacte de la plage ça marche MERCI beaucoup!
Je trouve cela bizarre quand même que ça marchait avec le signe ">" sans changer la plage 😕 ... Mais bon je ne vais pas chercher midi a 14h non plus 😀!

Une dernière question j'aimerais bien comprendre que fait exactement l'instruction NB.SI(A$1:A$6;A$1:A$6) dans la formule ? je suppose qu'elle calcule le nombre de valeurs non vides sur la plage A$1:A$6, mais le critère de la condition (qui est le deuxième A$1:A$6 ) m'embrouille..
 
Re : Petite question sur la fonction Rang

Bonjour,

en fait ce NB.SI calcule combien de fois chaque valeur est trouvée.
1/NB.SI donne 1/3 quand on trouve la valeur 3 fois et donc
somme (1/NB.si) donne 1 pour chaque valeur différente de la liste
avec si plage<B2 on compte combien il y a de valeurs différentes plus grande avec > ou plus petites avec <

Pour en revenir à la formule, on pourrait aussi faire une plage adaptable à la longueur des données avec Decaler.

Cordialement
 
Dernière édition:
Re : Petite question sur la fonction Rang

Bonjour mnounette, le fil,

Une dernière question j'aimerais bien comprendre que fait exactement l'instruction NB.SI(A$1:A$6;A$1:A$6) dans la formule ?

Allez dans la barre de formule et - sans vous tromper - sélectionnez l'expression qui vous intéresse.

Puis appuyez sur la touche F9 : ici, vous obtenez une matrice. Ensuite réfléchissez...

A+
 
Re : Petite question sur la fonction Rang

Bonjour,

en fait ce NB.SI calcule combien de fois chaque valeur est trouvée.
1/NB.SI donne 1/3 quand on trouve la valeur 3 fois et donc
somme (1/NB.si) donne 1 pour chaque valeur différente de la liste
avec si plage<B2 on compte combien il y a de valeurs plus grande avec > ou plus petites avec <

Pour en revenir à la formule, on pourrait aussi faire une plage adaptable à la longueur des données avec Decaler.

Cordialement


Oui je comprend mieux le sens, je te remercie vivement Dugenou, je vais tester aussi la fonction Decaler pour la rajouter a ma base de données 🙂!

Merci à tous pour vos réponses, la dynamique du forum est très louable.
Bonne continuation!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
5
Affichages
324
Retour