Formule pour détecter une fin de chaine de caractère

bonjour tout le monde, j ai une liste de reference assez longue genre

181AP5CUBISCS
100181ASPFLACS
181P5CUBISCS
200181PRSPFLACS
181SP5CUBISCS
181V5CUBISCS
250403EFLACS
150189FLACS
125387POT
150407FLACS
411FLACS
200413FLACS
125415POT
125426POT
200428FLACS
200429FLACS
499FLACS
500A100FLACS
150187FLACS
202FLACS
200405FLACS
150511FLACS
150187MFLACS

la codification est la suivante:

les 3 premiers chiffres conçernent les volumes inferieurs à 1000ml (150/500/250 etc..)

je peux isoler dans une colonne la reference du produit, qui peut se composer de 3 jusque 7 caracteres

si la reference est 1l, alors pas de chiffre dans la reference, si 5l, le chiffres est apres la reference, exemple 3895, 389 etant la ref produit 5 etant le volume 5l

389 est le 1l

150389 est le 150ml

idem avec la ref 181prsp, 150181prsp

normalement je suis capable isoler dans un fichier, la ref produit et sont volume

ensuite c est là que ca se complique un peu:

le contenant et son accessoire

fla=flacon

pot=pot

tube=tube

cubi= cubis

cs= capsule service

pomp=pompe

spray=spray

et hormis le pot, on peut avoir des combinaisons flacs flapomp, etc..

et il faudrait que j arrive a isoler dans une colonne exemple

200394flaspray 200ml 394 fla flacon spray spray

est ce que il existe une formule pour decomposer cela, je peux faire un fichier d essai, je suis en train de bosser dessus,car jusque là j'avais tout traiter à la main, mais j ai tout peter....donc autant refaire bien car cela risque de devoir etre mis a jour regulierement

comme vous pouvez le voir voici un extrait

image

J ai volontairement sabrer le nombre de ligne dans le fichier pour en faire un exemple

mais en gros, dan sles deux feuille, j importe la colonne A avec un copier coller qui fait environ 10 000 lignes, ensuite, j applique pour chaque feuille la methode de triage, ce qui ramener une feuilles à 50 ref mere, et l'autre a 300 combinaison environ

j ai également volontairement enlever les connections externe pour le poids du fichier, il me reste plus que ça a finir pour terminer mon rangement de fichier

merci

Hello,

Tu dis que tu as des contenant inférieurs à 1000ml sur les trois premiers chiffres mais il y en a un à 30ml dans ton fichier c'est normal ?

Est ce que tu as la table qui liste l'ensemble des codes sous famille ? Ca faciliterait grandement le traitement car dans le cas où t'as un contenant supérieur à 1000ml avec un code sous famille du genre 200XXXX (4 fois le X car tu dis que les sous familles peuvent aller jusqu'à 7 caractères) et bien pour dire que 200 fait parti du code sous famille et que ce n'est pas le contenant, je ne suis pas sûr que ce soit possible

Dans l'attente de ton retour j'ai déjà un petit bout de réponse sur les flaconnages (FLA, SPRAY, etc)

@+

Alors un 30ml ca sera par exemple 30426pot

En gros on peut faire une règle simple c est deviner le code avant le contenant

Si volume inf a 1 l (colonne volume) alors on concatene le volume - les 3 derniers caractères " ml"

Du coup on aura 30426

ensuite on connait le nb de caractère donc droite de la ref - les x premiers caractères nous aide à isoler le contenant et apres je passe la main car je sais pas faire

si volume =1l alors juste ref parent

Et si sup a 5l on concatene d abord la ref puis le volume 5

Normalement dans le fichier test tu a ds la feuille combinaison une colonne volume et une colonne référence parent

La je suis sur le tel donc dure a verifier

Ah,

En fait l’objectif c’est de remplir les colonnes après la colonne E ?

On a la sous famille et le code article comme info dispo ? Si c’est ça c’est plus simple en effet

Voici un test sous PowerQuery, il faut que tu télécharges l'addin sur google et après clic droit puis actualiser sur mon tableau de synthèse

@+

bon.... suite à un plantage du forum lors de l import de mon fichier je dois tout recommencer....

bon alors voici un fichier plus grand pour verifier, mais tes resultats ont l air coherent. je t explique comment je fais, et si tu peux integrer une petite manip avant de faire ton eclatement de ref.

dans la colonne A de l onglet 1 et 2, je vais copier une liste, celle à une longueur variable.

ensuite sur l'onglet 1 j applique une serie de filtrage et suppression de doubon, et une serie differente sur l'onglet 2. le détail est ecrit en texte sur chaque onglet.

une fois ce trie fait la colonne du volume et de la gamme va se mettre à jour grave au formule index(), a partir de là tu peux appliquer ta macro uniquement sur l onglet combinaison.

une fois que tu a eclaté la ref en contenant + acessoire dans une colonne séparé on peut donc ecrit une colonne attribut site

j'ai fais un tableau dans l onglet 3 pour definir x+y= z attribu.

merci

encore ue fois a cause du poids, il est vidé de toute formule index

alors je ne sais pas si tu a vu mon dernier fichier?

il y a 3 onglet

le troisieme sert un peu de base, mais doit etre conservé en l etat

le second va service a faire une colonne code contenant, puis designation contenant, code acessoire... puis atribut avec la combinaison des deux

car dans un fichier final qui repointe vers plein de fichier avec la formule index, j'utilise chacune des colonnes.

et du coup, je vois bien ton resulat mais je ne vois pas la macro pour la faire jouer sur un autre echantillon de données

edit: a oui tu m avais dit power query et add on, je le fais de suite

ps, j arrive pas a telecharger power query sur le site microsoft, ça tourne en rond...

ps2: c est la version française de power query qui deconne

ps3: en fait power query est deja en natif dans excel, alors explique moi un peu comment tu a fais car là je ne vois rien

ps4: j ai essayer de faire actualiser sur ton tableau, en ayant au préalable modifier qq ref, et ça ne change rien

bonjour baroute, ça va? des nouvelles?

Hello,

La dernière version

Tableau tout à gauche en Feuil1, tu sélectionnes la plage A2:A36, tu fais clic droit puis supprimer lignes de tableau et après tu prends ta nouvelle plage avec les 300 lignes et tu copies colle en valeur en A2. C'est ton tableau source.

Ensuite tu fais clic droit puis actualiser sur le tableau vert

slt en soit c est impeccable, maintenant faut juste qu on le remette en forme sinon ça va casser les liaisons avec les autres fichiers

donc en gros ta table de correspondance colonne g-l, peuvent rester dans cet onglet (qui aura pour nom index produit categorie) dont les colonnes ABC me sont reservé

ensuite, ta macro peut allez travailler dans l'onglet filtrage combinaison

en soit, je copie colle des données dans la colonne A, les colonnes B-G me sont reservé avec des formules type index dedans.

les colonnes h-l, sont pour toi

image

Bonsoir à tous !

Une autre approche Power Query ? (En espérant avoir correctement perçu le besoin.....)

Sur la base du classeur de BAROUTE78 () :

bonjour jfl, j ai pas du etre assez precis lors de ma demande, en gros le resultat y est mais l'ordre n y est pas m empechant d exploiter avec mes autres fichiers.

en gros, le fichier à trois feuilles, filtrage produit, filtrage combinaison et index produit catagorie

j ai essayer d'adapter, mais...ça coince

en fait, la source de données à traiter c est les colonnes ABCDEFG de la feuille "filtrage combinaison", la colonne A est un copié collé de données, les colonnes BCDEFG vont chercher des correspondances ailleurs avec la formules index

la source de données "feuil1" pour la table de correspondance , cette feuille doit s'apeler "index produit catagorie", et les colonnes ABC, me sont réservé pour mettre de la donnée, un table de correspondance pour mes catagorie.

et le résultat des données traités, doivent être en colonne HIJKL de la feuille "filtrage combinaison", avec l'ordre qui suit (ou pas)

H code contenant

i code accessoire

j libéllé contenant

k libéllé accessoire

l attribut

si vraiment ça coince pour mettre le fichier en ordre, je vais essayer de m adapter differement, mais quoi qu il arrive il me manque 4 colonnes, donc si vous avez reussi a y mettre l attribut ,les autres c est facile

ce qui est chiant c est que autant une macro vba je peux aller la lire la comprendre et la modifier, autant là, je byte que dale....

Bonjour à tous !

Faute de compréhension, vos explications ne me sont d'aucune utilité !

Je pense entrevoir que le traitement de la chaîne de caractères est conforme à vos attentes mais que la présentation des données vous pose problème.

Si tel est le cas, et pour éviter de perdre du temps (et son latin...), je vous propose qu'à partir de mon classeur précédent vous précisiez le nom des champs attendus (mode avant / après).

Bonjour et bien c etait déjà le cas dans mon premier fichier?

J ai du l alleger au max pour pas dépasser 1.5mo

Je vais essayer d en refaire un

Bonjour à tous !

Visiblement vous restez campé sur vos positions.

Je vous demande simplement d'être plus explicite quant au nom des champs à utiliser.

Oui oui je suis en repas de famille j essaye d en faire un plus explicite tt a l heure

alors j espere avoir ete assez precis, evidemment la ligne 1 de la feuille 2 et 3 sont a virer

Bonsoir à tous !

Une version 2 amendée :

Remarque : J'ai neutralisé, dans la requête, le calcul des volumes, ces derniers figurant déjà dans la source. Bien évidemment, on peut s'abstenir de procéder ainsi et laisser Power Query opérer.

Slt merci je regarde tout a l heure, journée chargé

Rechercher des sujets similaires à "formule detecter fin chaine caractere"