2009-08-28 10 views
4

J'ai une table de personnes avec des points. Plus il y a de points, plus votre position est élevée. Si vous avez les mêmes points, vous êtes égaux en premier, en second, etc.Formule Excel pour obtenir la position de classement

    | A           | B             | C
1 | nom     | position | points
2 | personne1 | 1             | 10
3 | personne2 | 2             | 9
4 | personne3 | 2             | 9
5 | personne4 | 2             | 9
6 | personne5 | 5             | 8
7 | personne6 | 6             | 7

En utilisant une formule Excel, comment puis-je déterminer automatiquement la position? J'utilise actuellement une instruction IF qui fonctionne bien pour 5 ou 6 positions correspondantes, mais je ne peux pas ajouter 30+ if statements car il y a une limite à la formule. Donc, si la colonne des points est la même que la position ci-dessus, alors c'est la même valeur de position. Si les points sont inférieurs à ceux indiqués ci-dessus, la position de la précédente position +1 est supprimée. Mais si la ligne au-dessus est la même, c'est la position précédente +2 et ainsi de suite.

Répondre

16

Vous pouvez également utiliser la fonction RANG

=RANK(C2,$C$2:$C$7,0) 

Il renvoie des données comme votre exemple:

| A  | B  | C 
1 | name | position | points 
2 | person1 | 1  | 10 
3 | person2 | 2  | 9 
4 | person3 | 2  | 9 
5 | person4 | 2  | 9 
6 | person5 | 5  | 8 
7 | person6 | 6  | 7 

La colonne « Points » doit être triés en ordre décroissant.

2

Tapez cette B3, puis tirez sur le reste des lignes:

=IF(C3=C2,B2,B2+COUNTIF($C$1:$C3,C2)) 

Ce qu'il fait est:

  • Si mes points égaux les points précédents, j'ai le même position.
  • Comptez les joueurs ayant le même score que le précédent et ajoutez leurs numéros à la position du joueur précédent.
+0

Parfait. D'autres suggestions ont exigé l'ajout d'autres colonnes qui sont bien si elles ont fonctionné, ceci fait exactement ce qui est nécessaire. Le COUNTIF() doit être prolongé plus longtemps pour obtenir une meilleure portée, mais sinon, il faut faire attention. Merci. –

0

Si votre colonne C est triée, vous pouvez vérifier si la ligne actuelle est égale à votre dernière ligne.Sinon, utilisez le numéro de ligne que la position dans le classement, sinon utiliser la valeur de ci-dessus (valeur pour b3):

= IF (C3 = C2, B2, ROW() - 1) Vous

peut utiliser la fonction LARGE pour obtenir la valeur la plus élevée n-ième au cas où votre colonne C ne sont pas triées:

= LARGE (C2: C7,3)

0

Essayez dans votre colonne ci-

=COUNTIF(B:B; ">" & B2) + 1 

Remplacer B2 par B3 pour le prochain ro w et ainsi de suite. Cela fait qu'il compte combien d'enregistrements ont plus de points que l'actuel et ajoute ensuite la position d'enregistrement actuelle (+1 partie).

0

La façon dont je l'ai fait, ce qui est un peu alambiquée, est la suivante:

  1. Trier les lignes par les points dans l'ordre décroissant
  2. Créer une colonne supplémentaire (D) à partir de D2 avec nombres 1,2,3, ... nombre total de positions
  3. Dans la cellule pour les positions réelles (D2), utiliser la formule if (C2 = C1), D2, C1). Ceci vérifie si les points de cette rangée sont les mêmes que les points de la rangée précédente. Si c'est le cas, il vous donne la position de la ligne précédente, sinon il utilise la valeur de la colonne D et gère donc les personnes avec des positions égales.
  4. Copiez cette formule dans toute la colonne
  5. Copiez la colonne positions (C), puis coller des valeurs spéciales >> pour remplacer la formule avec des positions
  6. Resort les lignes à leur ordre d'origine

C'est travaillé pour moi! S'il y a une meilleure façon, j'aimerais le savoir!

0

Vous pouvez utiliser la fonction RANK dans Excel sans nécessairement trier les données. Type = RANG (C2, $ C $ 2: $ C $ 7). Excel trouvera la position relative des données dans C2 et affichera la réponse. Copiez la formule jusqu'à C7 en faisant glisser le petit noeud à l'extrémité droite du curseur de la cellule.

+0

Elkannah Whettey réponse est excellente. Si les données ne sont pas triées et si les Points sont tels que plus les points sont bas plus la position est élevée alors utilisez la solution proposée par Elkannah Whettey. Mais déduisez le RANG à partir de 1 plus le nombre d'entrées. = 7-GRADE (C2, $ C $ 2: $ C $ 7). – user2922610

Questions connexes