Problème extraction sur chaine numerique

Résolu/Fermé
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016 - 13 août 2014 à 20:52
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016 - 20 août 2014 à 23:33
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
A voir également:

22 réponses

Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
Modifié par Raymond PENTIER le 14/08/2014 à 01:17
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
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
14 août 2014 à 09:32
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
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
Modifié par sanglier83 le 14/08/2014 à 11:44
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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
14 août 2014 à 14:37
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
14 août 2014 à 15:25
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
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
15 août 2014 à 15:48
en fait j'ai compris pourquoi cela ne fonctionnait pas. j'oubliais de sélectionner les colonnes sur lesquelles je validais en texte.
0
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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
Modifié par via55 le 14/08/2014 à 16:34
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 14/08/2014 à 16:57
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
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
15 août 2014 à 06:21
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
15 août 2014 à 12:55
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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
15 août 2014 à 14:32
Bonjour sanglier

Est ce que ceci donnerait le classement souhaité ?

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

Cdlmnt
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
15 août 2014 à 14:42
"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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
15 août 2014 à 14:49
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
15 août 2014 à 15:49
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
15 août 2014 à 17:58
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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
15 août 2014 à 18:18
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
Modifié par sanglier83 le 15/08/2014 à 23:01
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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
15 août 2014 à 23:31
Tout fonctionne alors

Bien

Merci de mettre en résolu

Bien cdlmnt
0
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
Modifié par sanglier83 le 16/08/2014 à 09:35
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
16 août 2014 à 11:21
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
Modifié par sanglier83 le 16/08/2014 à 11:34
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
via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
16 août 2014 à 15:47
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
sanglier83 Messages postés 69 Date d'inscription mercredi 13 août 2014 Statut Membre Dernière intervention 28 avril 2016
Modifié par sanglier83 le 16/08/2014 à 21:07
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