Problème extraction sur chaine numerique

Résolu
sanglier83 Messages postés 74 Statut Membre -  
sanglier83 Messages postés 74 Statut Membre -
Bonjour

Novice en excel je recherche souvent des idées sur le forum.

J'ai un fichier Excel dans lequel j'ai une colonne contenant des chaînes alphanumériques de longueurs et de types variés. Par exemple :
GCBAN204305
GCCAN205001
MCE12002
LBFAN104DO
je veux en effectuer le tri pour cela je suis passer par la fonction convertir en colonne fixe et ensuite les trier par les différentes colonnes. hors excel enlève les zéro quand je fais la convertion. il me transforme MCE 120 02 en MCE 120 2 et la même ce produit quand j'ai cad014 il l'extrait cad 14

je recherche une fonction simple qui me permette de faire un tri

Pouvez vous m'aider

22 réponses

  • 1
  • 2
  1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour.

    Je ne comprends pas ton souci : Tu lances directement le tri sur ta liste, et ça fonctionne parfaitement ! Ou alors je n'ai pas bien interprété ta question ...
    https://www.cjoint.com/?DHobpYzHa7r

    Cordialement.
    C'est bien, la retraite ! Surtout aux Antilles ... :-)
    Raymond (INSA, AFPA, CF/R)
    0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Une autre proposition avec une interprétation différente de celle de Raymond (que je salue au passage).

    https://www.cjoint.com/?DHojEtkpXQ7

    A+
    0
    1. sanglier83
       
      je pense que j'aurais du partir comme tu l'as fait mais ne dominant pas le VBA. la base est bonne mais le découpage devrait être le suivant :

      colonne A
      ref /
      CAD014 C AD 014
      CADAN000 C AD AN 000
      CADAN001 C AD AN 001
      GCBAN204305 G CB AN 204 30 5
      LBFAN104DO L BF AN 104 DO
      MCE12002 M CE AN 120 02 5
      JBFAN120205


      lien : http://www.cjoint.com/?3HpfkTXQlYu

      Nota : pour une ref sans AN la colonne D n'est pas rempli mais passe à la colonne E

      Est ce faisable ?

      A+
      0
  3. sanglier83 Messages postés 74 Statut Membre
     
    bonjour

    Entre la réponse de Raymond et la votre je m'aperçois que ma question n'est pas assez explicite. J'ai omis de vous donner certains infos importantes pour résoudre mon problème.

    le classement de ces références se fait a partir de cette régle :

    le document est classé à partir de :

    1) par le groupe formé par la 2eme et troisieme Ex :AD
    2) par les trois 1er chiffres
    3) par la 1er lettre

    nota : les REF sans la codification AN se place avant la codification AN
    EX : CAD014 est placé avant CADAN014

    https://www.cjoint.com/?3HolLpYT4xF

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

    Si j'ai bien compris, un essai en décomposant pour avoir la 1ere lettre les2° et 3° caractères, les 3 premiers chiffres et en faisant trier sur ces critères :

    https://www.cjoint.com/?0HooLkbzDUK

    Cdlmnt
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour à tous:
    Autre approche:
    Données Convertir Largeur fixe
    Étape 2/3 Ajouter 1 séparateur pour la première lettre et un autre pour les 2 lettres suivantes.
    Étape 3/3 Sélectionner la troisième colonne et choisir de pointer Texte au lieu de Standard. Destination $B$2.
    Par précaution incrémenter une colonne de 1 à 7638 pour pouvoir rétablir l'ordre initial.
    Trier par rapport aux colonnes C, B, D.
    Nota: avec une expession en texte 014 est triée avant AN014.
    0
    1. sanglier83
       
      bonjour

      je viens de tester ta solution. j'ai pointer texte au lieu de standard la ref CADAN000 se traduir par 0 en dernier

      si je suis ton aide

      etape 2/3 je selection les données de la colonne A. le signe "/" represente dle séparateur

      C / AD /AN0000 ce qui se traduit en B2 =C D2=AD et en E2 = AN000

      etape 3/3 il me reste à diviser AN / 000 en pointant texte j'ai un 0 au lieu de 000

      est ce celà ?
      0
    2. sanglier83 Messages postés 74 Statut Membre
       
      en fait j'ai compris pourquoi cela ne fonctionnait pas. j'oubliais de sélectionner les colonnes sur lesquelles je validais en texte.
      0
  7. sanglier83
     
    bonjour VIA 55

    merci pour ton aide car je deviens dingue avec ce classement. Ci joint un fichier qui montre le classement des références

    http://www.cjoint.com/?3HopY2LDmuD
    0
  8. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Oui et alors que veux-tu?
    C'est le classement à obtenir?
    Tu veux une formule pour la colonne E?

    "L'imagination est plus importante que le savoir." A. Einstein
    0
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    Proposition de clé de tri :
    =STXT(A2;2;2)&STXT(A2;MIN(SI(ESTNUM(--STXT(A2;LIGNE($1:$30);1));LIGNE($1:$30);99));3)&GAUCHE(A2;1)&SI(STXT(A2;4;2)="AN";"AN";"")
    formule matricielle à valider avec shift+ctrl+entrée
    La formule doit s'entourer de { } si la validation est correcte.
    https://www.cjoint.com/?DHoqZgkFTeM

    eric

    edit
    Et en piquant un bout de la proposition de via on peut la rendre non matricielle :
    =STXT(A2;2;2)&GAUCHE(SUBSTITUE(DROITE(A2;NBCAR(A2)-3);"AN";"");3)&GAUCHE(A2;1)&SI(STXT(A2;4;2)="AN";"AN";"")
    (pas dans le fichier)

    En essayant continuellement, on finit par réussir.
    Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
    0
  10. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Salut à tous.

    * Concernant le message#3 :

    Remarque 1 - "CAD014 est placé avant CADAN014" : C'est toujours les cas, les chiffres étant placés avant les lettres dans un tri.

    Remarque 2 - Le tableau présenté dans le fichier présente un inconvénient gênant : il y a des espaces (une quinzaine de caractères vides) à la fin de chaque référence !

    * Concernant la solution :

    Je propose de faire le tri sur la colonne B:B, dont toutes les cellules contiennent la formule =STXT(A:A;2;NBCAR(A:A)-1)&GAUCHE(A:A;1)

    Cordialement.
    0
  11. sanglier83 Messages postés 74 Statut Membre
     
    bonjour

    Avec votre aide à tous, j'ai bricoler un tableau avec un mélange de vos formules (que je ne domine pas) et la solution simple passant par l'onglet "Données - Convertir - largeur fixe" qui me pose toujours des problèmes avec les réf avec des zéros.

    Par contre j'ai du agir manuellement pour concrétiser ce tableau ce qui m'a demandé du temps. Pouvez-vous m'aider à trouver une solution plus rapide pour extraire exactement la référence sous le format dans le fichier que je joins.

    - Type
    - catégorie
    - société
    - famille
    - sous famille (nommé S1 à S6) J'ai limité la décomposition en 6 colonnes si vous pouvez en ajouter 2 ça m'arrangerait ou que je puisse régler cette variable.

    Par contre, lorsque j'effectue le tri des références, les Réf ne se classent pas comme je le voudrais (tout ceci est aussi dans le tableau joint)

    https://www.cjoint.com/?3HpmV1voQfq

    Encore mille merci pour votre aide.

    A+
    0
  12. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    "Par contre, lorsque j'effectue le tri des références, les Réf ne se classent pas comme je le voudrais (tout ceci est aussi dans le tableau joint) "

    La réponse t'a déjà été fournie : Remarque 2 - Le tableau présenté dans le fichier présente un inconvénient gênant : il y a des espaces (une quinzaine de caractères vides) à la fin de chaque référence !
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour Raymond

      C'est bien pour cela que dans mon dernier fichier ci-dessus j'ai commencé par les faire supprimer
      En espérant que le tri convienne cette fois au demandeur !

      Bien cdlmnt
      0
  13. sanglier83 Messages postés 74 Statut Membre
     
    Bonjour

    Encore mille merci à tous, je clôturerais le dossier quand je rentrerais au boulot si cela ne vous gêne pas. Je ferais des essais sur le gros fichier

    bien cordialement
    0
  14. sanglier83 Messages postés 74 Statut Membre
     
    Bonjour via 55

    Je viens de recevoir une liste de références qui me pose deux problèmes :

    la 1ère - GCGAN101/ 0102033 - il ya 7 caractères j'ai modifié ta formule en S1 en modifiant ta formule au niveau du &REPT("0";7 - je suis passé de 7 au lieu de 6. si je passe à 7 la valeur est ce que celà risque de poser des PB de tri ?

    la 2ème - c'est que des des réf sortent du format conventionnel

    exemples :

    055520
    TO0110
    AIMS81
    AMRMF7
    PDP32001MF4R00C0SUP

    Y a t il moyen de modifier la formule pour écarter ces types de document ?

    bien cordialement
    0
  15. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re,

    Pour la 1 tu as fait ce qu'il fallait faire

    Pour la 2 pas évident, comment faire le tri entre format conventionnel et non conventionnel?
    La question à laquelle il faudrait une réponse serait plutôt à quoi reconnait on un format conventionnel ? Est ce qu'on peut se baser sur les 2° et 3° caractères comme critère de validité ? Dans ce cas il faudrait avoir la liste exhaustives des couples de caractères valides

    Cdlmnt
    0
  16. sanglier83 Messages postés 74 Statut Membre
     
    Re,

    Pour répondre à ta question le format conventionnel a besoin du découpage pour être classé alors que le non conventionnelle passe par un simple tri sur la colonne Réf Doc.

    TEST : J'ai incrémenté l'ensemble des données et enlever manuellement les données de découpage non conventionnelles ensuite j'ai fait un tri en suivant le plan que tu m'as donné. toutes les réf non conventionnelles se trouve en bas de tableau (à moitié classé ) mais en séparant le réf conventionnelles et non conventionnelles je pourrais faire un tri simple sur le non conventionnelle.

    Peut être une solution ?

    Bien cordialement
    0
  17. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Tout fonctionne alors

    Bien

    Merci de mettre en résolu

    Bien cdlmnt
    0
  18. sanglier83 Messages postés 74 Statut Membre
     
    Bonjour

    En fait, si tu avais une solution pour éviter que je supprime à la main toutes les données de découpage pour les références non conventionnelles, ça m'aiderait bien, car c'est assez laborieux de les enlevez à la main et éviter des erreurs.

    merci

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

      et si tu testais les propositions de clé de tri et que tu faisais un retour ?
      On aurait moins l'impression de parler dans le vent.
      C'est la moindre des politesse de faire un retour à ceux qui ont passé du temps pour toi (et qui n'en passeront plus), que la proposition te satisfasse ou pas.
      eric
      0
    2. sanglier83 Messages postés 74 Statut Membre
       
      bonjour

      mille excuses si je t'ai offusqué mais ce n'est pas du tout volontaire. je suis parti sur une des propositions.

      nouveau dans ce forum, je répondrais à toutes les propositions. d'ailleurs j'ai remercier toutes les personnes dans mes courriels.

      cordialement
      0
  19. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    On en revient à ma question à laquelle tu n'as pas apporté de réponse satisfaisante :
    Comment Excel peut faire la différence entre une référence conventionnelle et non conventionnelle ? Il faut un critère qu'on pourra mettre dans une condition SI et ne faire appliquer le découpage qu'aux références conventionelles

    Sinon pas d'autre choix que de faire le tri manuellement !

    Cdlmnt
    0
  20. sanglier83 Messages postés 74 Statut Membre
     
    Pour répondre à ta question, on peut se baser sur les 2° et 3° caractères comme critère de validité, ci-joint cette liste prédéfinie qui permet d'identifier les différentes catégories. Donc cela permet d'établir une règle qui définit les références conventionnelles et les non conventionnelles

    https://www.cjoint.com/?3HqvdIqWP7M

    Cdlt
    0
  • 1
  • 2