Extraire la racine d'un contrat

Bonjour à tous,

Après quelques heures passées à chercher de mon côté, je m'avoue vaincu et vient vous demander de l'aide.

Je dois extraire des bases de contrat en tronquant les dernier caractères correspondant aux itérations de ces contrats. Le problème est que tous les contrats ne comportent pas le même nombre de caractères, que les suites de caractères à tronquer ne font pas la même taille, et que le caractère à partir duquel il faut supprimer le reste peut être soit un "-" soit un "_".

Il faut aussi noter que tous les contrats contiennent des "-" dans leur racine et qu'il faut les garder, il n'est donc pas possible de simplement identifier les "-" ou "_" et supprimer à partir de là.

Etant donné que le nombre maximum de caractères à supprimer est de 5, j'étais parti sur une idée de formule qui lirait le 5ème caractère à partir de la droite, si c'est un "-" ou "_", supprimer à partir de là, sinon lire le 4ème caractère à partir de la droite et ainsi de suite mais je n'arrive pas à bien l'orthographier, c'est pour cela que je viens vous demander de l'aide, mais peut être aurez vous une autre idée de formule/macro plus simple pour arriver au résultat escompté.

Vous trouverez ci-joint un fichier montrant quelques exemples.

Je remercie d'avance quiconque prendra le temps d'étudier ma demande.

Bonjour,

Ci-joint ton fichier avec une proposition :

=GAUCHE(A4;NBCAR(A4)-(NBCAR(A4)-CHERCHE(MAX({"-01";"-02";"_01";"_02"});A4)+2))

Tu test et tu me dit

Cdlt,

Bonjour,

Autre contribution

=GAUCHE(A13;NBCAR(A13)-7+SI(ESTERREUR(CHERCHE("-";DROITE(A13;6);1));CHERCHE("_";DROITE(A13;6);1);SI(ESTERREUR(CHERCHE("_";DROITE(A13;6);1));CHERCHE("-";DROITE(A13;6);1);MIN(CHERCHE("-";DROITE(A13;6);1);CHERCHE("_";DROITE(A13;6);1)))))

En attente de retour

Bonjour, tout d'abord je vous remercie tous les deux pour votre rapidité et votre temps.

La première solution ne fonctionne pas j'ai par exemple "14-640-01_01" qui devient "14-6" ou "14-ABC-000 ABCD-01_01" qui devient "14-ABC-0". La 2ème formule proposée par Bernard fonctionne par contre parfaitement.

Encore une fois un grand merci à vous deux de vous être penchés sur mon problème.

DamienH a écrit :

Bonjour, tout d'abord je vous remercie tous les deux pour votre rapidité et votre temps.

La première solution ne fonctionne pas j'ai par exemple "14-640-01_01" qui devient "14-6" ou "14-ABC-000 ABCD-01_01" qui devient "14-ABC-0". La 2ème formule proposée par Bernard fonctionne par contre parfaitement.

Encore une fois un grand merci à vous deux de vous être penchés sur mon problème.

Les exemples que tu donne ne correspondent pas à tes explications du départ. Sauf erreur de ma part ?

Je ne vois pas de logique, mais si la solution de @bernard22 fonctionne tant mieux..

Cdlt,

Je suis vraiment désolé si mes explications n'étaient pas suffisamment claires de t'avoir fait perdre ton temps, il est vrai que dans mon premier message j'ai dit que tous les contrats comprenaient un autre tiret mais j'avais oublié qu'il pouvait y en avoir plus d'un, je ne sais pas si c'est ça qui pose problème avec ta formule mais si c'est le cas c'est complètement de ma faute et je m'en excuse.

Nan, nan ne t'excuse pas

Ce n'est pas le propos. Mais en regardant tes deux dernier exemple, je ne retrouve pas la logique que tu nous présente plus haut, ET même je ne trouve pas de logique du tout.

Suivant ce que tu nous as présenté j'aurai pensé que t'aurai voulu trouver ça :

14-460-01_01 = 14-460

et

14-ABC-0000 ABCD-01_01 = 14-ABC-0000 ABCD

Tu as mentionner le fait que la parti à supprimer est toujours à la fin;

derrière un tiret "-" ou un "_" ;

Et qu'il fallait supprimer maximum 5 caractères..

Ce n'est pas le fait de perdre mon temps qui me dérange ne t'inquiète pas ^^. Il m'en reste beaucoup du temps

Tu as tout à fait raison c'est exactement les résultats que je voulais trouver, quand je disais que j'avais "14-640-01_01" qui devenait "14-6" c'était en essayant d'utiliser ta formule!

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH

Sa explique tout

Le vendredi c'est dur .

Bon beh tu as eu ta solution, c'est ce qui importe !

Haha pas de soucis merci quand même d'avoir essayé et je te souhaite un bon week end!

Rechercher des sujets similaires à "extraire racine contrat"