OVH Cloud OVH Cloud

fonction de tri

11 réponses
Avatar
JeNeVois
Bonjour,

je cherche une fonction (sans VBA) qui me donne
la valeur correspondante aux rangs des minima dans
le tableau d'exemple suivant

A: B : C: (resultat espéré de la
fonction)
poires 5 oranges(1.rang)
pommes 8 poires (2.rang)
fraises 12 pommes (3.rang)
fromboises 10 fromboises (4.rang)
oranges 3 fraises (5.rang)

en un mot qui simulerait un tri des données dans
une colonne séparée.

P.S. : Je ne suis pas très en forme ces jours-ci
Veuilez donc excusez la naiveté de ma question,s.v.p.
Merci !

1 réponse

1 2
Avatar
Michel Gaboly
Merci, ;-))

Bonsoir Michel,

Belle astuce avec ligne(), surtout pour:
TEXTE(LIGNE() - LIGNE(Réf) + 1;""" (""0"".rang"")")
Et zou... dans la boite à idées
Merci
Salutations
JJ


"Michel Gaboly" a écrit dans le message de news:

Re,

De rien.

Je craignais que ma réponse t'ait échappé, ce qui n'est visibleme nt pas le
cas ;-))


Pour avoir lerang explicitement sous la forme "oranges(1.rang)", il fau t
aapter ainsi la formule :

=INDEX(DECALER(Réf;0;-1);EQUIV(PETITE.VALEUR(Réf;LIGNE() - LIGNE( Réf) +
1);Réf;0)) & TEXTE(LIGNE() - LIGNE(Réf) + 1;"""
(""0"".rang"")")


Bonsoir Michel Gaboly,

merci pour cette élaboration très didactique
qui est probablement plus pratique pour
une grande ou croissante sélection.

Bonne soirée !



Bonsoir,

En combinant PETITE.VALEUR(), LIGNE(), INDEX() et EQUIV():

Nommons "Réf" (sans guillemet), la plage contenant les valeurs en B

Dans ue colonne quelconque, sur la même ligne que la preière vale ur en B,
entrons cette formule :

=PETITE.VALEUR(Réf;LIGNE() - LIGNE(Réf) + 1)

et recopions vers le bas sur le nb de lignes nécessares (5 dans
l'exemple)

On récupère les valeurs de la colonne B triées

Ensuite avec un DECALER(), pour chercher le contenu de la colonne
précédente et INDEX()/EQUIV(), on récupère les intitulés:

=INDEX(DECALER(Réf;0;-1);EQUIV(E2;Réf;0))

NB - La formule précédente était en colonne E dans mon test.


On peut se contenter d'une colonne unique avec cette formule :

=INDEX(DECALER(Réf;0;-1);EQUIV(PETITE.VALEUR(Réf;LIGNE() - LIGN E(Réf) +
1);Réf;0))


NB - Le défaut du système est que cela ne fonctionne que si toute s les
valeurs sont différentes : si fraises et framboises sont toutes à 10, on
pourra récupérer fraises ou framboises, en fonction de l'ordre
d'appartition dans le tableau, mais pas les 2

exemple : http://cjoint.com/?klrSMoJeDj

Bonjour,

je cherche une fonction (sans VBA) qui me donne la valeur correspond ante
aux rangs des minima dans
le tableau d'exemple suivant

A: B : C: (resultat espéré de la
fonction)
poires 5 oranges(1.rang)
pommes 8 poires (2.rang)
fraises 12 pommes (3.rang)
fromboises 10 fromboises (4.rang)
oranges 3 fraises (5.rang)

en un mot qui simulerait un tri des données dans
une colonne séparée.

P.S. : Je ne suis pas très en forme ces jours-ci
Veuilez donc excusez la naiveté de ma question,s.v.p.
Merci !


--

Cordialement,

Michel Gaboly
www.gaboly.com








--
Cordialement,

Michel Gaboly
www.gaboly.com




1 2