Tri très spécial

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. Contributeur
    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. Merci pour ta réponse, mais désolée mais ce n'est pas ce que je recherche.
      0
  2. 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. Oui je suis d'accord mais c'est extrait d'une BDD.
      0
  3. 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. merci
      0
    2. merci pour ta solution mais j'aurais voulu éviter de convertir et ensuite concaténer.
      0
    3. S'il s'agit seulement de trier, concaténer n'est pas indispensable.
      0
  4. Contributeur
    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
    1. Contributeur
      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
      1. Contributeur
        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. Contributeur
          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. Contributeur
          Rassure-toi, ami Éric ; c'est bien ce que j'obtiens ...
          0
        3. Contributeur
          En fait ça aurait plus tendance à m'inquiéter... ;-)
          19P (Premier) doit être devant 19D (Deuxième)
          0
        4. Contributeur
          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
      2. Contributeur
        supermajo, ne cherche plus :
        la (bonne) solution t'a été fournie par eriiic au post #10 de 12:12 ...
        0
        1. Bonjour à tous

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

          Cdlmnt
          0