Recherche de formule

Bonjour à tous ,

je recherche une formule pour un classement automatique, mais avec des égalités.

J'utilise la formule =rang(b3;b$3:b$50;0), mais mon problème, il classe bien mais quand j'ai des égalités, il saute un classement ce possible.

ex: j'ai deux cinquième et je souhaiterai que celui qui suit soit sixième. est-ce possible

merci pour votre aide

11classsement.xlsx (9.80 Ko)

bonjour,

une proposition.

18classsement.xlsx (10.20 Ko)

Bonjour,

Merci pour ta réponse, donc je suis obligé de créer une autre colonne? et d'avoir le premier du classement en haut.

Cdt

Bonjour,

Au cas où, ce n'est pas une formule, mais un TCD

10classsement.xlsx (14.95 Ko)

bonjour,

Merci pour ta réponse, donc je suis obligé de créer une autre colonne? et d'avoir le premier du classement en haut.

oui, cette rénumérotation du classement se base sur une liste déjà triée.

La fonction RANG te donne le résultat communément admis pour un classement, ce qui n'est pas le cas de ta demande. Pour cela, voici une solution via une fonction personnalisée.

Function RANKSPE(valeur, plage As Range, Optional ordre = 0)
    ar = plage.Value
    ReDim art(1 To UBound(ar, 1) * UBound(ar, 2))
    ctr = 0
    For i = 1 To UBound(ar, 2)
        For j = 1 To UBound(ar, 1)
            ctr = ctr + 1
            art(ctr) = ar(j, i)
        Next j
    Next i
    For i = 1 To ctr - 1
        For j = i To ctr
            If (ordre = 0 And art(i) < art(j)) Or (ordre <> 0 And art(i) > art(j)) Then
                a = art(i): art(i) = art(j): art(j) = a
            End If
        Next j
    Next i
    ctr = 1
    For i = 1 To UBound(art)
        If i > 1 Then
            If (ordre = 0 And art(i) < art(i - 1)) Or (ordre <> 0 And art(i) > (art(i - 1))) Then ctr = ctr + 1
        End If
        If (ordre = 0 And art(i) <= valeur) Or (ordre <> 0 And art(i) >= valeur) Then Exit For
    Next i
    RANKSPE = ctr
End Function
7classsement.xlsm (16.27 Ko)

Bonjour,

merci pour le code, mais je ne suis pas assez calé pour l'appliquer dans mon fichier,

je recherche plus une formule.

Cdt

Bonjour,
Un petit essai à l'ancienne

16classsement.xlsx (10.11 Ko)

Bonjour,
Un petit essai à l'ancienne

Bonjour,

A priori, nous sommes sous Excel 2007, donc ça devrait parfaitement convenir

Dommage, mon TCD n'a pas de succès...

Re
Oui il y a des réticences pour les TCD, c'est dommage.

Bonjour à tous,

Non je n'ai pas de réticence pour les TCD, j'essaie plusieurs possibilité que vous m'avez proposé, mais pour l'instant je n'arrive pas à finir mon fichier.

j'e n'ai pas le résultat que je souhaite. Mais je ne désespère pas, je continue a regarder sur le web et vos solutions que vous m'avez fournir.

Cdt

bonjour,

merci pour le code, mais je ne suis pas assez calé pour l'appliquer dans mon fichier,

UNe fonction personnalisée est une fonction que l'on ajoute aux fonctions disponibles en standard dans excel.

Cette fonction s'appelle rankspe (renvoie le rang d'un nombre dans une liste de nombres) et nécessite les paramètres suivants :

rankspe(valeur,plage,ordre)

  • plage est la liste des nombres
  • valeur est le nombre dont on cherche le rang
  • ordre est un paramètre optionnel 0 ou 1 (par défaut : 0) qui détermine si le rang doit être déterminé en considérant la liste des nombres en ordre décroissant(0) ou croissant(1).
  • Ce sont les mêmes paramètres que la fonction RANG()

et s'utilise comme toute autre fonction en excel (par exemple)

=rankspe(A1;A1:A15;0)

Voici la procédure pour rendre la fonction personnalisée disponible dans ton classeur.

  • Copier le code sur le forum, voir mon message précédent (sélectionner le code et faire CTRL-C)
  • ouvrir ton classeur excel
  • faire alt-F11 pour ouvrir l'éditeur de macro VBA
  • faire menu->insérer Module
  • coller le code (CTRL-V)
  • faire alt-F11 pour retourner à excel
  • sauver le fichier sous (choisir avec les macros -> extension .xlsm)

La fonction est maintenant disponible dans ton classeur pour toute utilisation immédiate et future.

bonjours à tous,

j'aurais vraiment besoin d'aide, après plusieurs tentative je n'arrive pas a avoir les résultats que je souhaite.

je mets en ligne mon fichier, j'armerais avoir les mêmes résultats dans les colonnes vertes (bien sur avec une formule de classement)

Merci pour votre aide

10essaie.xlsx (18.64 Ko)

Bonjour h2so4,

je viens de faire ce que m'a demandé, mais le fichier ne trouve pas le bon chiffre.

il affiche le 16 rang alors que c'est le 15 rang

10essaie.xlsm (25.86 Ko)

bonjour,

il affiche le 16 rang alors que c'est le 15 rang

c'est normal, les nombres que tu affiches avec une décimale, (in casu 76.7) sont 2 nombres différents par leurs décimales suivantes (76.7322580645161% et 76.6631578947368%) et donc sont considérés comme différents pour le classement. Si tu veux un classement en ne tenant pas compte des décimales suivantes, tu dois arrondir tes nombres au dixième de pourcent.

Re,

il m'affiche bien en dixième, mettre quand je clique dessus j'ai 5 chiffres après la virgule.

Comment dois-je faire pour garder au dixième?

Merci

9essaie.xlsm (26.74 Ko)

bonjour le fil,

colonnes E:F

4essaie-1.xlsb (23.46 Ko)

ligne 4 et 10, 2 fois 80.3% mais avec un autre ranking. Je pense que votre classement est faux

En rose, vos et mes doublons, vous avez 45 valeurs uniques, moi, j'ai 43.

Donc comment arrondissez-vous ?

re-,

Comment dois-je faire pour garder au dixième?

ajoute une nouvelle colonne pour y mettre une formule pour arrondir.

8essaie-2.xlsm (22.80 Ko)

@H2so4, sa version est 2007 et arrondir est depuis 2016 quand je consulte l'aide.

C'est plutôt =TRONQUE(B2*1000+0,5)/1000

Bonjour à tous,

merci beaucoup pour votre aide. J'ai choisi de prendre les conseils de H2So4.

voulez vous que je mette le fichier fini en ligne?

Cdt

Rechercher des sujets similaires à "recherche formule"