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 à 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
      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
        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
          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