Probleme formule excel equiv

Résolu/Fermé
bxlucky - 8 avril 2012 à 20:18
 bxlucky - 9 avril 2012 à 08:31
Bonjour,

le probleme que je rencontre est le suivant, j 'ai 2 colonnes

A B C D
2 0.5 2 1
4 1.2 4 2
9 3.0 5 7
7 0.8 3 4
1 0.2 1 9

je fais les rangs de la colonne B dans C et je voudrais en fait obtenir en colonne D mes chiffres de la colonne A dans l ordre des rang mais avec la fontion aquiv ca me met d importe quoi, y a t il une autre solution

merci de vos reponses
A voir également:

4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
8 avril 2012 à 20:34
Bonjour

je pense que EQUIV vous met n'importe quoi parce que vous n'utilisez pas le bon code:

=INDEX(A:A;EQUIV(C1;C:C;0))

en mettant le 0 à la fin de EQUIV vous lui imposez de trouver la valeur exacte.
Sans ce 0 elle ne fonctionne correctement pour des valeurs exactes que si la colonne de recherche est classée en ordre croissant.
attention, si vous avez des exaequo, la formule ne vous sortira que la première valeur de A
sinon il faut ruser.
crdlmnt

0
bonsoir

merci pour votre reponse

formule interressante mais ca me donne pas le resultat de la colonne D, ca me remet la colonne A dans le meme ordre
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
Modifié par Vaucluse le 9/04/2012 à 06:32
Bonjour
A adapter
votre tableau de A2 à C100
si vous commencez sur ligne 2 en D2votre liste classée:
=SI(LIGNE()-2>MAX($C$2:$C$100);"";INDEX($A$2:$A$100;EQUIV(LIGNE()-1;$C$2:$C$100;0))
devrait vous les remettre dans l'ordre
toujours sans traiter les exaequo, bien sur

Pour info, pour traiter des exaequo,une astuce, toujours dans le même exemple:
en colonne C:
=SI(A2="";"";RANG(A2;$A$2:$A$100;1)+NB.SI($A$1:A2;A2)/100)
(dans la, limite de 99 fois la même valeur sinon /1000)
et dans la liste classée, en D2:
=SI(ESTERREUR(PETITE.VALEUR($C$2:$C$100;LIGNE()-1);"";INDEX($A$2:$A$100;EQUIV(PETITE.VALEUR($C$2:$C$100;LIGNE()-1;$C$2:$C$100;0)))

crdlmnt

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
bonjour

merci pour votre aide ca marche nickel.

crdlmnt
0