Classement décroissant sans macro
Résolu
ath80
Messages postés
234
Statut
Membre
-
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 27336 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
https://www.cjoint.com/?CJxvCMSWcJO
Sur le fichier, à gauche on retrouve les tableaux non classés. Je voudrais obtenir les tableaux classés par ordre décroissant (sur la droite) sans macro. De plus, je voudrais que ces derniers soient mis à jour automatiquement si on modifie une valeur du tableau de gauche.
Merci d'avance.
https://www.cjoint.com/?CJxvCMSWcJO
Sur le fichier, à gauche on retrouve les tableaux non classés. Je voudrais obtenir les tableaux classés par ordre décroissant (sur la droite) sans macro. De plus, je voudrais que ces derniers soient mis à jour automatiquement si on modifie une valeur du tableau de gauche.
Merci d'avance.
4 réponses
-
Bonjour,
Et pourquoi 2 tableaux ?
Tu ne peux pas mettre un filtre automatique sur les titres, et utiliser la fonction 'tri croissant' du filtre automatique sur B, et 'tri décroissant' sur C ?
Et si tu veux que certains items restent groupés en bas après le tri croissant fais les débuter par { ou ~ ou |
eric
-
Bonjour tous (salut Eriiic)
une solution avec une colonne intermédiaire en D
voir le résultat sur le premier tableau à droite en vert
https://www.cjoint.com/c/CJyi7NipzlZ
crdlmnt
-
Merci beaucoup ! Après réflexion, j'ai compris ce que vous avez voulu faire avec le code rang. Par contre, je n'ai pas compris la formule dans le tableau de droite :
INDEX($B$3:$C$29;EQUIV(PETITE.VALEUR($D$3:$D$29;LIGNE()-2);$D$3:$D$29;0);1)
La formule est de la forme (référence ;n° ligne ;n° colonne ;1)
Déjà je ne comprends pas ce que représente le 1.
Ensuite, je ne comprends pas comment on procède avec le n° de ligne, pouvez me détailler l'utilisation de EQUIV(PETITE.VALEUR($D$3:$D$29;LIGNE()-2). Je me suis aperçu que le -2 représente le nombre de lignes au-dessus de la valeur la plus haute de la zone de référence.
Sinon j'ai réussi à adapter l'ensemble à mon fichier car le fichier que je vous ai joints est un exemple. -
Re
Le code de base est:
INDEX(Champ1;N° de ligne; N°de colonne)
N° de ligne et colonne étant définis par rapport aux références du champ.
LIGNE() renvoie le N° de ligne (par rapport à la feuille Excel) sur laquelle se trouve la formule.
vous pouvez tester en entrant la formule =LIGNE() dans une cellule, ça fonctionne aussi avec COLONNE()
Donc LIGNE()-2 renvoi 1 sur la ligne 3..... (2 sur ligne 4.. ect)
EQUIV(Valeur ; champ2;0) définit le N° de ligne de champ2 ou se trouve la valeur cherchée
Donc la formule:
recherche dans le champ1 INDEX soit B3:C29
la valeur de la cellule qui se situe sur la ligne trouvée par EQUIV, soit le rang de la petite.valeur de rang LIGNE()-2 dans le champ2 D3:D29
et dans la colonne spécifiée par;1) final, 1° colonne du champ1 .. 2 pour la 2° colonne ect..
espèrant avoir été clair
bonne route
crdlmnt
Errare humanum est, perseverare diabolicum