Fonction Rang selon deux conditions

  • Initiateur de la discussion Initiateur de la discussion Kargos
  • 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 !

Kargos

XLDnaute Nouveau
Bonsoir,

Je cherche à créer une fonction VBA qui fonctionnerait comme la fonction Rang, mais seulement si la donnée répond à certaines conditions.

Je m'explique:

Imaginez ce tableau:

[table="width: 500"]
[tr]
[td]ID[/td]
[td]Pays[/td]
[td]Sexe[/td]
[td]Score[/td]
[/tr]
[tr]
[td]1[/td]
[td]Canada[/td]
[td]M[/td]
[td]12[/td]
[/tr]
[tr]
[td]2[/td]
[td]Canada[/td]
[td]M[/td]
[td]14[/td]
[/tr]
[tr]
[td]3[/td]
[td]France[/td]
[td]M[/td]
[td]13[/td]
[/tr]
[tr]
[td]4[/td]
[td]Canada[/td]
[td]F[/td]
[td]17[/td]
[/tr]
[tr]
[td]5[/td]
[td]Canada[/td]
[td]F[/td]
[td]14[/td]
[/tr]
[tr]
[td]6[/td]
[td]France[/td]
[td]F[/td]
[td]19[/td]
[/tr]
[tr]
[td]7[/td]
[td]Canada[/td]
[td]F[/td]
[td]8[/td]
[/tr]
[tr]
[td]8[/td]
[td]France[/td]
[td]M[/td]
[td]15[/td]
[/tr]
[tr]
[td]9[/td]
[td]France[/td]
[td]F[/td]
[td]11[/td]
[/tr]
[/table]

Maintenant, j'aimerais avoir le rang de chacun de ces individus. Par contre, j'aimerais avoir le rang des hommes canadiens séparément des femmes ainsi que des hommes français.

Comme résultat, j'aimerais avoir:
[table="width: 500"]
[tr]
[td]ID[/td]
[td]Rang[/td]
[/tr]
[tr]
[td]1[/td]
[td]2[/td]
[/tr]
[tr]
[td]2[/td]
[td]1[/td]
[/tr]
[tr]
[td]3[/td]
[td]2[/td]
[/tr]
[tr]
[td]4[/td]
[td]1[/td]
[/tr]
[tr]
[td]5[/td]
[td]2[/td]
[/tr]
[tr]
[td]6[/td]
[td]1[/td]
[/tr]
[tr]
[td]7[/td]
[td]3[/td]
[/tr]
[tr]
[td]8[/td]
[td]1[/td]
[/tr]
[tr]
[td]9[/td]
[td]2[/td]
[/tr]
[/table]

Vous voyez que chaque individu se voit attribué un rang en le comparant seulement à ses pairs.

Le tout, en évitant un classement.

Pensez-vous que c'est possible?

Merci
 
Re : Fonction Rang selon deux conditions

Finalement, ça semblait fonctionner mais j'arrive à une impasse.

Supposez le tableau suivant:

[table="width: 500"]
[tr]
[td][/td]
[td]A[/td]
[/tr]
[tr]
[td]1[/td]
[td]8,912126433[/td]
[/tr]
[tr]
[td]2[/td]
[td]2,399253566[/td]
[/tr]
[tr]
[td]3[/td]
[td]13,52983813[/td]
[/tr]
[/table]

Si j'entre la formule:

=Nb.Si.Ens(A1:A3;"<="&A1)

Je devrais obtenir le même résultat que si je fais, via VBA, la commande:

Application.WorksheetFunction.Countifs(Range(Cells(1,1),Cells(3,1)),"<=" & Cells(1,1))

Pourtant, ce n'est pas le cas.

La formule me donne 2, ce qui est correct.

Par contre, le code VBA me retourne 3, ce qui est incorrect...

Avec-vous une idée de la raison?

Merci
 
Re : Fonction Rang selon deux conditions

À noter:

en faisant des tests avec le code VBA, si je remplace

"<=" & Cells(1,1) par "<=" & Left(Cells(1,1), 3)

Ça retourne 0. Idem pour Left(... , 4). Par contre, pour Left(..., 5 ) ça retourne 3. !?
 
- 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

Réponses
2
Affichages
582
Réponses
6
Affichages
159
Réponses
5
Affichages
564
Réponses
18
Affichages
1 K
Réponses
3
Affichages
533
Retour