Problème de tri

mmyriamm Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai beau chercher je ne trouve pas comment trier les noms terminant par .1 par ordre alphabétique tout en gardant les accompagnateur (.2 et plus) sous ceux-ci voici mon exemple :

TRI ACTUEL
NUMÉRO NOM
1.1 ZOULOU
1.2 ANDREWS
2.1 BERNARDIN
2.2 COUTURE
3.1 CANTIN
3.2 YANKEE

RÉSULTAT DÉSIRÉ
NUMÉRO NOM
2.1 BERNARDIN
2.2 COUTURE
3.1 CANTIN
3.2 YANKEE
1.1 ZOULOU
1.2 ANDREWS

quelqu'un aurait une idée ne nécessitant pas de macro?

Merci!




A voir également:

6 réponses

Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
C'est simple : Ce que tu voudrais est impossible !
0
mmyriamm Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
:-) D'autres idées?
0
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
Tu n'auras pas de propositions, car ta question est incompréhensible !
Quelle est la règle pour classer ainsi tes données ?
Parce que ta phrase " comment trier les noms terminant par .1 par ordre alphabétique tout en gardant les accompagnateur (.2 et plus) sous ceux-ci " ne veut rien dire, et ton classement 2.1 - 2.2 - 3.1 - 3.2 - 1.1 - 1.2 n'est pas logique !
Alors recommence tes explications, en t'assurant qu'elles sont exactes et claires.
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour,

Sans macro!!!
Alors voici une proposition un peu alambiquée.
Rappel de la disposition de vos données:
Colonne A ---> les numéros
Colonne B ---> les noms
Faites un premier tri du tableau sur la colonne A, on obtient ceci
NUMÉRO NOM
1.1 ZOULOU
1.2 ANDREWS
2.1 BERNARDIN
2.2 COUTURE
3.1 CANTIN
3.2 YANKEE
Maintenant en Colonne C que j'ai appelée "Code"
en C2, écrivez ceci:
=SI(DROITE(A2;1)="1";CODE(GAUCHE(B2;1))+LIGNE();CODE(GAUCHE(B1;1))+LIGNE())
ce qui donne un numéro de classement.
Faites un tri sur cette colonne, vous devriez obtenir le résultat attendu.

Cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
Bonjour, Frenchie83.

Je ne veux pas mourir idiot.
Alors comme ta procédure donne effectivement la liste demandée, peux-tu m'expliquer la logique de ce rangement ? Pourquoi 1.1 ZOULOU se retrouve après 3.2 YANKEE ? Je n'ai rien compris à ce que désire mmyriamm, qui se refuse à me fournir des explications.
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour Raymond,

A mmyriammm
Tout d'abord, en relisant mon précédent envoi (Post 4), j'ai oublié de préciser qu'il fallait faire impérativement un "copier-coller collage spécial valeurs" de la colonne C pour figer les valeurs avant de faire le tri sur la colonne C.

Quant à ce qui demandé:
Dans le N° 1.1, le chiffre de gauche équivaut à un groupe, le deuxième chiffre correspond à un sous groupe appelé par mmyriamm "accompagnateur".
La première priorité, c'est de classer tous les noms par ordre alphabétique dont le N° d'accompagnateur se termine par .1. Ensuite, tous les autres N° d'accompagnateurs qui terminent par .2 .3 etc, doivent aussi être classés par ordre alphabétique mais chacun dans leur groupe respectif. C'est pour cela que 1.1 ZOULOU se retrouve après 3.2 YANKEE, Z est après Y dans l'alphabet (1er tri).
Ensuite ZOULOU faisant partie du groupe 1 avec comme N° d'accompagnement .1 , alors il doit se retrouver devant ANDREWS qui fait partie lui aussi du groupe des .1, mais dont le N° d'accompagnateur est .2

Quant au raisonnement que j'ai suivi, j'applique un premier tri par rapport à la colonne des N°, ce qui me donne l'ordre correct "Groupe.Accompagnateur" , soit 1.1 1.2 2.1 2. 2 3.1 3.2 etc.
Reste à appliquer le tri par ordre alphabétique sur les noms, mais tout en conservant la structure de l'ordre précédent, pour cela:
--Si le N° d'accompagnateur est .1, alors je convertis en numérique la première lettre de chaque nom auquel j'y ajoute le numéro de ligne.
--Si le N° d'accompagnateur est différent de .1 , alors je convertis en numérique la première lettre du nom précédent (puisqu'il fait partie du même groupe), auquel j'y ajoute le N° de ligne pour ne pas avoir de doublon.

Il suffit en suite de faire un copier-coller collage spécial valeurs" de la colonne C pour figer les valeurs et d'appliquer un tri sur cette colonne.

Voilà, j'espère avoir été clair, sinon faudra attendre que mmyriamm veuille bien se manifester pour donner son avis.

Bonne journée.
0