XL 2021 Attribuer une note uniquement aux 3 plus grandes valeurs

Hamid84

XLDnaute Nouveau
Bonjour è toutes et à tous
J'ai un gros souci pour trouver une formule excel ou un code vba qui me permet d'attribuer automatiquement la note de 10 points aux trois plus grandes valeurs.
Dans la colonne incriminée, il y a plusieurs séries de nombre séparés par des sous totaux. Ci-joint le fichier en question pour illustrer mon besoin; les séries sont indépendantes les unes des autres et sont extraites d'un tableau croisé dynamique.
Merci pour votre aide ou vos remarques qui pourraient me permettre d'évoluer dans cette longue recherche infructueuse pour l'instant
 

Pièces jointes

  • Points NAC.xlsx
    13 KB · Affichages: 7

mapomme

XLDnaute Barbatruc
Supporter XLD
Re ;),

Une question se pose malgré tout :

Imaginons les points : 20, 18, 18, 17, 16, 15, 15, ...

Les 6 premiers répondent à la demande mais le 7e a le même nombre de points que le 6e.
Soit on en récompense 6 et le 7e est lésé soit on en récompense 7 et il faut prévoir une hotte de noël un tout petit peu plus grande et fournie 🎅. C'est la méthode généreuse.

Sinon on peut appliquer la méthodes des financiers => on en récompense que 5 😟. Ça marche aussi.

nota : bonsoir @job75 :).
 
Dernière édition:

merinos-BernardEtang

XLDnaute Accro
Bonjour @HamidBG ,

j'ai adapté afin de pouvoir avoir le top (x) directement dans le pivot

Ici je donne des exemples avel le top(2) et le top(7)

je travaille avec des mesures sur tables non liées. ce qui fait que la mesure "topix." est constante par rapport a l'autre table.

1701417608156.png
1701417683620.png



De plus on peut presenter du texte dans un pivot via "return".
(const ne sert a rien sauf a avoir quelquechose devant le return)

1701417982000.png
 

Pièces jointes

  • PQ Rankx pour garder top3.xlsx
    166.6 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour le forum,

Puisqu'un simple tri ne suffit pas voyez le fichier joint avec ces formules matricielles en E2 et F2 :
Code:
=SIERREUR(INDEX(A$2:A$22;EQUIV(F2;B$2:B$22-LIGNE(B$2:B$22)/1000000;0));"")
Code:
=SIERREUR(GRANDE.VALEUR(SI(B$2:B$22>=GRANDE.VALEUR(B$2:B$22;D$2);B$2:B$22-LIGNE(B$2:B$22)/1000000);LIGNE(F1));"")
La MFC sur E2:F22 permet d'effacer les couleurs des textes vides.

Modifiez la valeur du TOP en D2.

Nota : -LIGNE(XXX)/1000000 permet de distinguer les exaequo.

A+
 

Pièces jointes

  • Classement.xlsx
    11 KB · Affichages: 7

job75

XLDnaute Barbatruc
Au post #17 mapomme indique qu'il y a la méthode généreuse et la méthode des financiers.

La méthode que j'utilise au post #21 est bien sûr la méthode généreuse.

La méthode des financiers ne fonctionnerait pas pour un TOP inférieur à 3.
 

Hamid84

XLDnaute Nouveau
Bonjour le forum,

Puisqu'un simple tri ne suffit pas voyez le fichier joint avec ces formules matricielles en E2 et F2 :
Code:
=SIERREUR(INDEX(A$2:A$22;EQUIV(F2;B$2:B$22-LIGNE(B$2:B$22)/1000000;0));"")
Code:
=SIERREUR(GRANDE.VALEUR(SI(B$2:B$22>=GRANDE.VALEUR(B$2:B$22;D$2);B$2:B$22-LIGNE(B$2:B$22)/1000000);LIGNE(F1));"")
La MFC sur E2:F22 permet d'effacer les couleurs des textes vides.

Modifiez la valeur du TOP en D2.

Nota : -LIGNE(XXX)/1000000 permet de distinguer les exaequo.

A+
Merci bien job75
Bon dimanche
 

Statistiques des forums

Discussions
315 095
Messages
2 116 165
Membres
112 675
dernier inscrit
Tazra_IMOU