Classement d'une liste avec doublons/rang sans doublons

Le
LargoWinch
Bonjour,

je suis confronté a un bête problème, que je souhaite résoudre sans VBA
si possible.
Soit une matrice représentant (par exemple), une liste de composants
suivis de leurs prix, dans lesquels peuvent se trouver des doublons.
Ex :
C1 100
C2 80
C3 110
C4 100


Sur un autre onglet, je souhaite avoir la liste triée par prix de mes
composants (plus le prix), sachant que si je bouge un prix dans le 1er
onglet, cela bouge le classement du 2ieme.

Ex : ou (indiféremment)
C2 80 C2 80
C1 100 C4 100
C4 100 C1 100
C3 110 C3 110

J'ai beau essayer de jongler avec les RechercheV, les Equiv, les Rang,
pas moyen d'avoir une jolie liste triée lorsqu'il y a des doublons,
toutes ces fonctions ramenant la même valeur/rang en cas de doublon,
donc je me paie soit des doublons, soit des #NA.

Evidemment, dans la vraie vie, mes colonnes ne sont pas cote à cote

Ma question peut en fait aussi se résumer à : comment attribuer un rang
unique aux éléments d'une liste contenant des doublons ?

Merci.

--
Largo
"C'est pas parce qu'il sont nombreux a avoir tort qu'il ont forcément
raison" - Coluche
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AV
Le #17952441
Salut à tous

Avec plages nommées ("Composants" - "Prix") et une BD bien organisée ! (en ligne
1 les noms de champs, pas de lignes vides..etc)
Pour avoir les Prix triés :
* SELECTION PREALABLE d'une plage d'un nombre de lignes équivalent à celui de la
BD
*
=INDEX(Prix;EQUIV(Prix+LIGNE(Prix)/9^9;PETITE.VALEUR(Prix+LIGNE(Prix)/9^9;LIGNE(Prix)-1);0))
* Validation par Ctrl+maj+entrée

Pour avoir les Composants triés :
* SELECTION PREALABLE d'une plage d'un nombre de lignes équivalent à celui de la
BD
*
=INDEX(Composants;EQUIV(Prix+LIGNE(Prix)/9^9;PETITE.VALEUR(Prix+LIGNE(Prix)/9^9;LIGNE(Prix)-1);0))
* Validation par Ctrl+maj+entrée

http://www.cijoint.fr/cjlink.php?file=cj200811/cijoLd49iu.xls

Ave à tous
AV
Fredo P.
Le #17952721
Bonjour Mr Vallon
ça get gut?
Votre paire de lunette 9^9 fonctionne à merveille comme je vois!
o))
LargoWinch
Le #17954741
AV a écrit :
Salut à tous

Avec plages nommées ("Composants" - "Prix") et une BD bien organisée ! (en ligne
1 les noms de champs, pas de lignes vides..etc)
Pour avoir les Prix triés :
* SELECTION PREALABLE d'une plage d'un nombre de lignes équivalent à celui de la
BD
*
=INDEX(Prix;EQUIV(Prix+LIGNE(Prix)/9^9;PETITE.VALEUR(Prix+LIGNE(Prix)/9^9;LIGNE(Prix)-1);0))
* Validation par Ctrl+maj+entrée

Pour avoir les Composants triés :
* SELECTION PREALABLE d'une plage d'un nombre de lignes équivalent à celui de la
BD
*
=INDEX(Composants;EQUIV(Prix+LIGNE(Prix)/9^9;PETITE.VALEUR(Prix+LIGNE(Prix)/9^9;LIGNE(Prix)-1);0))
* Validation par Ctrl+maj+entrée

http://www.cijoint.fr/cjlink.php?file=cj200811/cijoLd49iu.xls

Ave à tous
AV




Merci.

Il va falloir que je décortique tt ca pour voir comment ca marche.
Modeste
Le #17954911
Bonsour® LargoWinch avec ferveur ;o))) vous nous disiez :

je suis confronté a un bête problème, que je souhaite résoudre sans VBA si possible.
Soit une matrice représentant (par exemple), une liste de composants
suivis de leurs prix, dans lesquels peuvent se trouver des doublons.



Sur un autre onglet, je souhaite avoir la liste triée par prix de mes
composants (plus le prix), sachant que si je bouge un prix dans le 1er
onglet, cela bouge le classement du 2ieme.



Ma question peut en fait aussi se résumer à : comment attribuer un
rang unique aux éléments d'une liste contenant des doublons ?




Indépendament d'un quelconque tri préalable
une solution serait de dédoublonner les prix en faisant intervenir une valeur unique audela de la 3éme décimale afin de ne pas modifier l'affichage monétaire

c-a-d
ajout de 2 colonnes(Plg_PrixD et Plg_Rang)
prix dédoublonné = prix affiché-(fraction du N° de ligne)
PrixD=Prix-(ligne()/100000) (sans impact sur l'affichage format monnaie)

chaque prix aura alors un rang unique ( le N° de ligne est unique)
=Rang(PrixD;Plg_PrixD)

il suffit ensuite d'utiliser la combinaison INDEX/EQUIV pour obtenir le résultat voulu

http://www.cijoint.fr/cjlink.php?file=cj200811/cijF1e0yK8.xls

;o)))
sans validation matricielle !!!
c'était ma contribution chirogourdiste au retour de AV


--
--
@+
;o)))
LargoWinch
Le #17955661
Modeste a écrit :
Bonsour® LargoWinch avec ferveur ;o))) vous nous disiez :

je suis confronté a un bête problème, que je souhaite résoudre sans VBA si possible.
Soit une matrice représentant (par exemple), une liste de composants
suivis de leurs prix, dans lesquels peuvent se trouver des doublons.



Sur un autre onglet, je souhaite avoir la liste triée par prix de mes
composants (plus le prix), sachant que si je bouge un prix dans le 1er
onglet, cela bouge le classement du 2ieme.



Ma question peut en fait aussi se résumer à : comment attribuer un
rang unique aux éléments d'une liste contenant des doublons ?




Indépendament d'un quelconque tri préalable
une solution serait de dédoublonner les prix en faisant intervenir une valeur unique audela de la 3éme décimale afin de ne pas modifier l'affichage monétaire

c-a-d
ajout de 2 colonnes(Plg_PrixD et Plg_Rang)
prix dédoublonné = prix affiché-(fraction du N° de ligne)
PrixD=Prix-(ligne()/100000) (sans impact sur l'affichage format monnaie)

chaque prix aura alors un rang unique ( le N° de ligne est unique)
=Rang(PrixD;Plg_PrixD)

il suffit ensuite d'utiliser la combinaison INDEX/EQUIV pour obtenir le résultat voulu

http://www.cijoint.fr/cjlink.php?file=cj200811/cijF1e0yK8.xls

;o)))
sans validation matricielle !!!
c'était ma contribution chirogourdiste au retour de AV




Bien vu et sans doute plus simple à comprendre.

Merci
Modeste
Le #17955881
Bonsour® LargoWinch avec ferveur ;o))) vous nous disiez :

Bien vu et sans doute plus simple à comprendre.



;o)))
hormis les {1,2,3,4} qu'il faut adapter à chaque redimensionnement de la BD :-((
il s'agit intrinsequement de la meme méthode que celle proposée par AV

la validation matricielle permet de se passer des 2 colonnes intermédiaires.
les deux colonnes intermediaires peuvent etre disposées ailleurs ou bien masquées

le petit plus ;o))) ( ce n'est pas évident d'améliorer une proposition de AV )
est dans le repositionnement possible des cibles en fonction des lignes d'entetes-cibles (plages nommées)



--
--
@+
;o)))
AV
Le #17956081
>....;une solution serait de dédoublonner les prix en faisant intervenir une
valeur unique audela de la 3éme décimale afin de ne pas modifier l'affichage
monétaire...



Pffff....
Et ça fait quoi la partie de la formule : "...Prix+LIGNE(Prix)/9^9..." hein ?
RePfff...

...ajout de 2 colonnes(Plg_PrixD et Plg_Rang)



Et en plus faut rajouter des colonnes ?
Repffff
:-)
AV
AV
Le #17956071
> Il va falloir que je décortique tt ca pour voir comment ca marche.



Si on se met tous à décortiquer les bagnoles...
Pfff...

:-)
AV
AV
Le #17956061
> Bonjour Mr Vallon
ça get gut?



Sehr gut !
Danke

AV
LargoWinch
Le #17956931
AV a écrit :
Il va falloir que je décortique tt ca pour voir comment ca marche.



Si on se met tous à décortiquer les bagnoles...
Pfff...

:-)
AV




Mais si je veux comprendre pour pouvoir réutiliser sans faire appel au
forum à chaque fois, il faut que je décortique. J'espère juste que je
saurai remonter après ;)
Publicité
Poster une réponse
Anonyme