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

  • Votes
  • Date
  • Date décroissante
  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. 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
      1. Merci pour ta réponse, mais désolée mais ce n'est pas ce que je recherche.
    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
      1. Oui je suis d'accord mais c'est extrait d'une BDD.
    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
      1. merci
      2. merci pour ta solution mais j'aurais voulu éviter de convertir et ensuite concaténer.
      3. S'il s'agit seulement de trier, concaténer n'est pas indispensable.
    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


      1. Contributeur
        supermajo, ne cherche plus :
        la (bonne) solution t'a été fournie par eriiic au post #10 de 12:12 ...
        1. Bonjour à tous

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

          Cdlmnt
          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. 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
            2. Contributeur
              Rassure-toi, ami Éric ; c'est bien ce que j'obtiens ...
            3. Contributeur
              En fait ça aurait plus tendance à m'inquiéter... ;-)
              19P (Premier) doit être devant 19D (Deuxième)
            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.