Formule pour isoler chaine de caractère en fonction de plusieurs conditions

kim_81

XLDnaute Nouveau
Bonjour le forum,

Je souhaiterais avoir votre aide pour obtenir une formule sans passer par vba si possible
pour que dans la seconde colonne j'isole une chaine de caractère, ici les prénoms en fonction
de la première colonne

Dans la première colonne, la chaine de caractère est aléatoire;

J'espère avoir été assez clair ;)

Merci,
 

Pièces jointes

  • exemple_fichier.xlsx
    8.3 KB · Affichages: 59

kim_81

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Le prénom est dans la chaine de caractère de la première colonne. Je veux isoler le prénom pour l'inscrire dans la seconde colonne ;).

AAA-LOUIS
ERIC-BBB
CCC-JEAN
DDD-ERIC
LOUIS-EEE
FFF-ERIC
GGG-PATRICK
HHH-LOUIS
III-LOUIS
JJJ-JEAN
KKK-ERIC
LLL-LOUIS
MMM-JEAN
NNN-JEAN
OOO-LOUIS-1254
PPP-JULES
5448-JULES-QQQ
5478-JULES-RRR


Et dans la seconde, je veux pouvoir isoler le prénom..


Avec cette formule, ça fonctionne mais que pour un seul prénom :

=SI(ESTERREUR(TROUVE("LOUIS";A1));"";"LOUIS") > pour Louis donc mais je voudrais aussi pour les autres.
 
Dernière édition:

grenadine

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Bonjour,

On a bien compris ton besoin le problème c'est que ton prénom n'a jamais une place fixe.
tes cas sont:
  1. aaa - prénom
  2. prénom - aaa
  3. aaa - prénom - 1111
  4. 1111 - prénom - aaa

Il n'y à pas de logique claire qui se désine si ce n'est que quand y a 2 tiret le prénom ce trouve au milieu des deux tiret.
Mais pour les deux premier cas soit tu fait un règle qui lit ce qu'il y a après le tiret soit avant. Mais la formule n'est pas capable de deviner de quel coté du tiret ce trouve le prénom. Encore plus si tu te retrouve avec un prénom à 3 lettres.

Avec cette formule tu peux afficher le prénom après un tiret (cas 1)
=DROITE(A1;NBCAR(A1)-NBCAR(STXT(A1;1;TROUVE("-";A1;1))))
 

kim_81

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

non y a pas forcément de logique dans la chaine de caractère, juste qu'on y trouve le prénom.
Je pense que c'est possible... c'est juste pour exemple, le vrai fichier est un fichier beaucoup plus complexe.
 

titiborregan5

XLDnaute Accro
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Comme l'a dit grenadine, si on ne sait pas où se trouve le prénom par rapport au tiret c'est compliqué...
essaie de mettre un exemple représentatif, qu'on évite de travailler dans le vent...
après, si tu as une base de donnée de tous les prénoms en parallèle, on peut procéder autrement...
 

kim_81

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Non j'ai du mal m'exprimer. Ce que je veux, c'est que dans la colonne A, les chaînes de caractère contiennant un prénom >>> Je veux que ce prénom soit affiché en colonne B. Le fichier donné est très significatif ^^.
Si pour un prénom, je peux le faire, avec une formule du type SI(OU... je dois être en mesure de le faire.

Sinon on passe sur du VBA...
 
Dernière édition:

grenadine

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

En faite sans logique on ne peut pas construire un raisonement (formule).
Même si ton fichier de base est plus compliquer est ce que tu peux pas nous donner juste un extract de ta colonne. Il y a peut être une logique caché.^^
 

Amilo

XLDnaute Accro
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Bonjour kim_81,

Une proposition qui semble fonctionner pour l'exemple proposé mais pas certain que cela marche sur votre fichier perso (formule à mettre en C1) :

=SI(ESTNUM(GAUCHE(A1)*1);STXT($A1;CHERCHE("-";$A1;1)+1;SIERREUR(CHERCHE("-";$A1;CHERCHE("-";A1;1)+1)-CHERCHE("-";A1;1)-1;NBCAR(A1)));SI(REPT(DROITE(A1;1);3)=DROITE(A1;3);STXT(A1;1;CHERCHE("-";A1;1)-1);STXT($A1;CHERCHE("-";$A1;1)+1;SIERREUR(CHERCHE("-";$A1;CHERCHE("-";A1;1)+1)-CHERCHE("-";A1;1)-1;NBCAR(A1)))))

Cordialement
 

kim_81

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Fonctionne pour le fichier effectivement car la formule proposée prend en compte les cas proposés et dans mon vrai fichier, j'en ai d'autres ... si j'ai bien compris.

Merci pour votre aide tt de même, bizarre qu'avec un SI OU, on ne puisse pas y arriver..
 

Staple1600

XLDnaute Barbatruc
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Bonjour à tous

kim_81
.../...
Merci pour votre aide tt de même, bizarre qu'avec un SI OU, on ne puisse pas y arriver..
C'est pas bizarre, mais juste logique.
Par exemple
MARTIN-JEAN
Comment on fait pour savoir où est le nom et où est le prénom?

Maintenant si tu es si sur qu'on puisse y arriver avec un SI et OU, prouves-le nous camarade ;)
 

kim_81

XLDnaute Nouveau
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

non non je suis pas sur avec un si ou ^^

ué j'ai une solution sinon c'est de faire par colonne puis de concaténer c'est pas très beau et prend un peu plus de place, mais ca fonctionne :)
 

Staple1600

XLDnaute Barbatruc
Re : Formule pour isoler chaine de caractère en fonction de plusieurs conditions

Re

Ca ne réponds pas à ma question
Comment tu fais pour MARTIN-JEAN?

Pour ta solution, autant dans ce cas, passer par Données/Convertir/Délimité/Séparateur: -
Mais là encore, tu auras n colonnes? Comment tu identifies celles avec des prénoms dans ta concaténation?
Sauf si tes données sont vraiment comme dans ton exemple où seuls les prénoms sont intelligibles dans tes strings.
 

Discussions similaires

Réponses
7
Affichages
749
Réponses
4
Affichages
385

Statistiques des forums

Discussions
312 681
Messages
2 090 882
Membres
104 686
dernier inscrit
obi009