Tri excel alpha numérique type "1A10B" - "1A11B" - "1A1

petite lulu -  
tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai lu plusieurs topics sur le sujet, mais je n'ai rien trouvé dans les formules proposées qui puisse coller à ma problématique (ou alors, je n'ai simplement pas su appliquer les réponses)

J'ai un listing où les emplacements d'articles sont notés : 1A10B" - "1A11B" - "1A10C" - "1B01A"...

Excel me les trie, comme à son habitude, en fonction des chiffres. C'est à dire
1A10A
1A10B
1A10C...

Or j'aimerai le tri suivant :

1A10A
1A11A
1A12A...
1A01B
1A02B...

Quelle est la formule magique?

Merci infiniment pour votre aide.

Lulu

4 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    La formule magique n'existe pas il faut composer en fonction de chaque cas particulier
    Dans ton cas est ce que les références sont toujours composées d' 1 chiffre, 1 lettre, 2 chiffres, 1 lettre ?
    Dans ce cas ce sera facile

    Cdlmnt
    Via
    0
    1. petitelulu13 Messages postés 6 Statut Membre
       
      Bonjour Via,

      Oui, tout à fait, c'est toujours le même schéma.
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > petitelulu13 Messages postés 6 Statut Membre
       
      Re,

      Dans ce cas ajouter une colonne à côté de celle des références
      En supposant la 1ere référence en A2, en B2 mettre la formule :
      =CODE(DROITE(A2;1))-64&GAUCHE(A2;1) &STXT(A2;3;2)
      qui convertit la dernière lettre en nombre (1 pour A, 2 pour B) et y concatène les 3 chiffres de la références
      Ensuite selectionner toutes les colonnes à trier et faire faire le tri sur la 2eme colonne (que tu peux ensuite masquer ou effacer)

      Cdlmnt
      Via
      0
    3. petitelulu13 Messages postés 6 Statut Membre
       
      Merci beaucoup, cela a résolu une partie du problème : les deux derniers chiffres et la dernière lettre se trient correctement. Par contre pas la première lettre :

      1A01A
      1B02A
      1B03A
      1A01B
      1B01B
      1B01B
      1B01B
      1B01B
      1B01B
      1B02B
      1B02B
      1B03B
      1B03B
      1A04B
      1A06B
      1A06B
      1A07B
      1A09B
      1A10B
      1A12B
      1A01C
      1A01C
      1B01C
      1B01C
      1B01C
      1B01C

      Il y a une modif à faire? Il faudrait avoir tous les "1A..." puis tous les "1B..." "1C...."
      0
    4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > petitelulu13 Messages postés 6 Statut Membre
       
      Re,

      Essaie :
      =CODE(DROITE(A5;1))-64&GAUCHE(A5;1) &CODE(STXT(A5;2;1))-64 &STXT(A5;3;2)
      0
    5. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5 > petitelulu13 Messages postés 6 Statut Membre
       
      Bonjour

      Essaie le fichier ,c'est un peu lourd , mais ça marche.
      tire les formules jusqu'a la dernière ligne et trie en col. G

      EJBpkituIni_Class1.xls

      A+
      0
  2. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour,
    En cas de difficulté on peut aussi découper en 4 colonnes avec Données Convertir Largeur fixe. Il suffit ensuite de choisir la bonne colonne pour chaque clé de tri.
    0
    1. petitelulu13 Messages postés 6 Statut Membre
       
      Bonjour,

      Merci pour votre réponse, je vais tester aussi demain, voir quelle est la solution la plus adéquate :)
      0
  3. petitelulu13 Messages postés 6 Statut Membre
     
    Bonjour à tous et encore merci de m'avoir proposé des solutions hier.

    La solution de tontong fonctionne bien, voici ce que j'obtiens, et cela correspond bien à l'ordre de l'emplacement physique :

    1A1A
    1A1B
    1A4B
    1A6B
    1A6B
    1A7B
    1A9B
    1A10B
    1A12B
    1A1C
    1A1C
    1A3C
    1A4C
    1A5C
    1A5C
    1A7C
    1A8C
    1A9C
    ....
    ....
    1B3A
    1B1B
    1B1B
    1B1B
    1B1B
    1B1B
    1B2B
    1B2B
    1B3B
    1B3B
    1B1C
    1B1C
    1B1C
    1B1C
    1B1C
    1B1C
    1B1C

    Le seul petit inconvénient : ça m'a supprimé le "0" qui est en 3ème position lorsque le chiffre du milieu n'est pas en dizaine ("1A01A"; "1A02A"...)
    et c'est un poil plus long à mettre en place.

    Avec la formule de Via55 j'obtiens :

    1A01A
    1B02A
    1B03A
    1A01B
    1A04B
    1A06B
    1A06B
    1A07B
    1A09B
    1A10B
    1A12B
    1B01B
    1B01B
    1B01B
    1B01B
    1B01B
    1B02B
    1B02B
    1B03B
    1B03B
    1A01C
    1A01C
    1A03C
    1A04C

    Donc j'ai toujours le souci que la première lettre n'est pas classée. Cependant comme je n'ai pas compris comment fonctionne cette formule, je ne sais pas la modifier en conséquence.
    j'aimerais bien arriver à ce que ça fonctionne avec la formule de Via55 car moins de colonnes, et moins long à mettre en place une fois que ça roule :)

    Nihcoc, je ne sais pas comment ajouter ou télécharger un fichier... :)

    Merci :)
    0
    1. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      Bonjour,
      Lors d'une conversion le format par défaut est le format Standard. Dans ce format ce qui ressemble à nombre est interprété comme un nombre, et 01 s'écrit 1: Excel supprime le 0 qui ne sert à rien pour un nombre.
      Un remède consiste à spécifier un format Texte pour cette colonne à l'étape 3/3 de la conversion.
      Mieux: si les données sont en M 1: M .... spécifier $N$1 comme cellule de destination à l'étape 3/3. Sélectionner les colonnes de données + les colonnes auxiliaires N,O, P, Q avant d"effectuer le tri.
      0
  4. petitelulu13 Messages postés 6 Statut Membre
     
    Problème résolu avec cette formule : M étant la colonne dans la quelle se trouvent mes emplacements:

    =STXT(M1;2;1)&STXT(M1;5;1)&STXT(M1;1;1)&STXT(M1;3;2)

    puis tri.

    merci à tous pour votre aide :)
    0