Tri très spécial

supermajo Messages postés 20 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je dois trier des données construites de la façon suivante :

- 2 chiffres pour l'année
- ensuite une lettre :
P pour 1er trimestre
D pour 2ème trimestre
T pour troisième
Q pour quatrième

- puis 7 chiffres

il faut que je trie en ordre croissant mais surtout en respectant l'ordre des trimestres.

Actuellement je coupe ma donnée en 3 colonnes et je fais un tri personnalisé par rapport à la colonne des lettres, et quand c'est ok je concatène.

Est-ce que quelqu'un pourrait me dire s'il y a une méthode plus rapide ?

Merci pour votre aide

8 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    on voit qu'il faut changer au moins 2 lettres.
    J'ai choisi A pour T1 et Z pour T4 :
    =SUBSTITUE(SUBSTITUE(A2;"P";"A");"Q";"Z")

    et trier sur cette colonne.
    eric

    1
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    dans une colonne supplémentaire
    =STXT(A2;3;1) te renvoie la lettre du trimestre (A2 comporte tes 2 chiffres, le trim et les 7 nombres
    et tu tries sur cette colonne
    0
    1. supermajo Messages postés 20 Statut Membre
       
      Merci pour ta réponse, mais désolée mais ce n'est pas ce que je recherche.
      0
  3. Utilisateur anonyme
     
    Bonjour,
    Dommage que les trimestres ne soient pas référencés T1, T2, T3, T4, comme on fait généralement.
    Cordialement,
    Arthur
    0
    1. supermajo Messages postés 20 Statut Membre
       
      Oui je suis d'accord mais c'est extrait d'une BDD.
      0
  4. Utilisateur anonyme
     
    Peut-être ceci, si j'ai bien compris :
    https://cjoint.com/c/ICtjErH4KGh
    Trier sur colonne G, éventuellement concaténer E et G
    Arthur
    0
    1. supermajo Messages postés 20 Statut Membre
       
      merci
      0
    2. supermajo Messages postés 20 Statut Membre
       
      merci pour ta solution mais j'aurais voulu éviter de convertir et ensuite concaténer.
      0
    3. Utilisateur anonyme
       
      S'il s'agit seulement de trier, concaténer n'est pas indispensable.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Re,
    bonjour Arthur,

    effectivement, j'ai été trop vite dans ma réponse , excuse moi

    Pour le faire dans l'ordre progressif P D T Q, il faut à mon avis, passer par du VBA

    D'autre part les autres membres ( 2 premiers et 7 derniers) doivent ils être triés et si oui dans quel ordre d'importance (trimestre puis 2 premiers puis 7 derniers?) et en croissant et décroissant ?

    important: combien de lignes comporte ton tableau ?

    le mieux serait de joindre ton classeur

    Mettre le classeur sans données confidentielles en pièce jointe sur 
    https://mon-partage.fr
    Dans le lien de téléchargement
    faire un clic droit- copier l’adresse du lien et le coller dans le message en cours sur ccm


    0
  7. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    supermajo, ne cherche plus :
    la (bonne) solution t'a été fournie par eriiic au post #10 de 12:12 ...
    0
  8. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour à tous

    Un essai avec macro
    https://www.cjoint.com/c/ICto00wrKcB

    Cdlmnt
    0
  9. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Bonjour à vous tous.

    @ supermajo : pour conserver la piste de michel_m au post #1, si tes données sont placées en A2:A99, tu insères une colonne en B, en B2 tu saisis la formule
    =STXT(A2;3;1)&STXT(A2;1;2)&STXT(A2;4;7) que tu recopies jusqu'en B99,
    et tu tries par rapport à la colonne B, que tu peux ensuite masquer.
    -1
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour raymond,

      m'est avis qu'elle veut garder l'année devant le trimestre, et que ce qui la gêne est que l'ordre alpha ne correspond pas à l'ordre des trimestres (D < P etc).
      eric
      0
    2. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
       
      Rassure-toi, ami Éric ; c'est bien ce que j'obtiens ...
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      En fait ça aurait plus tendance à m'inquiéter... ;-)
      19P (Premier) doit être devant 19D (Deuxième)
      0
    4. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
       
      Oh, là , là ! Tu as raison !
      Je me suis trop précipité sur ce que je pensais être LA solution et je me suis planté ...
      Je commence à vieillir sérieusement !
      Merci de ton intervention.
      0