Fonction inverse de Concatener

moustic54

XLDnaute Occasionnel
Bonjour à tous,

Voici mon problème : J'avais 3 colonnes (nom en colonne A - épouse en colonne B - prénom en colonne C) que j'ai concatené en colonne D puis copié valeurs afin de pouvoir supprimer ces 3 colonnes.
Or aujourd'hui se sont des informations dont j'ai besoin alors que je n'ai plus qu'à disposition Nom ép. XXX Prénom.
Existe-e-t-il un moyen dans mes 3 colonnes nouvellement créées d'effectue une fonction inverse à Concatener me permettant de retrouver dans la 1ère le nom, la suivante le nom d'épouse et la 3ème le prénom ?

Ex : DURAND ép. DUPOND Sophie (colonne D)
avoir en colonne A : DURAND
colonne B : DUPOND
colonne C : Sophie

ou s'il s'agit d'un homme
Ex : PROUST Marcel
avoir en colonne A : PROUST
colonne B :
colonne C : Marcel

Merci d'avance
 

Tibo

XLDnaute Barbatruc
Re : Fonction inverse de Concatener

Bonjour moustic, salut Jean-Claude,

Problème régulièrement évoqué.

Question toute bête : y-a-t-il des noms et/ou prénoms composés ? Sont-ils séparés par des espaces ou des tirets ?

A te (re)lire avec ces quelques précisions.

@+
 

JNP

XLDnaute Barbatruc
Re : Fonction inverse de Concatener

Bonsoir le fil :),
Tibo va certainement trouver plus court :p, mais bon, en A1
Code:
=GAUCHE(D1;TROUVE(" ";D1)-1)
en B1
Code:
=SI(NBCAR(SUBSTITUE(D1;" ép. ";""))=NBCAR(D1);"";STXT(D1;TROUVE(" ép. ";D1)+5;TROUVE(" ";SUBSTITUE(D1;" ép. ";""))-TROUVE(" ";D1)))
et en C1
Code:
=SI(NBCAR(SUBSTITUE(D1;" ép. ";""))=NBCAR(D1);DROITE(D1;NBCAR(D1)-TROUVE(" ";D1));DROITE(D1;NBCAR(D1)-TROUVE(" ";SUBSTITUE(D1;" ép. ";""))-5))
à condition bien sûr qu'il n'y ait pas de prénoms ou noms composés avec des espaces...
Sinon, en se basant sur Nom en majuscule, nom épouse en majuscule avec ép. devant et prénom en initiale majuscule et reste en minuscule, un RegExp devrait faire l'affaire :rolleyes:...
Bonne soirée :cool:
 

chris

XLDnaute Barbatruc
Re : Fonction inverse de Concatener

Bonjour
Bise à Tibo, JCGL, JNP

Pas mieux que JNP mais légèrement différent

Pour un nom en A1
Nom
Code:
=GAUCHE(A1;TROUVE(" ";A1)-1)
Nom marital
Code:
=SI(ESTERREUR(TROUVE("ép.";A1));"";STXT(A1;TROUVE("ép.";A1)+4;TROUVE(" ";A1;NBCAR(B1)+1)))
Prénom
Code:
=STXT(A1;NBCAR(B1&C1)+SI(C1<>"";5;1);100)
 

moustic54

XLDnaute Occasionnel
Re : Fonction inverse de Concatener

Bonjour moustic, salut Jean-Claude,

Problème régulièrement évoqué.

Question toute bête : y-a-t-il des noms et/ou prénoms composés ? Sont-ils séparés par des espaces ou des tirets ?

A te (re)lire avec ces quelques précisions.

@+

Bonjour Tibo

Il y a en effet des noms composés quant à la règle des tirets, elle n'est pas toujours respectée c'est-à-dire que parfois il y en a d'autres fois c'est un espace qui sépare le nom ou le prénom composé.
Seules constantes les noms sont tous en mauscule et les prénoms en minuscules avec la 1ère lettre en majuscule.
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Fonction inverse de Concatener

re,

Bises à Chris, poignée de main aux gars,

Je m'attendais à ce souci de noms composés.

Je te propose donc ceci :

en C1, une formule matricielle :

Code:
=STXT(D1;EQUIV(1;((CODE(GAUCHE(STXT(D1;LIGNE(INDIRECT("1:"&NBCAR(D1)));2)))>64)*(CODE(GAUCHE(STXT(D1;LIGNE(INDIRECT("1:"&NBCAR(D1)));2)))<91)*(CODE(DROITE(STXT(D1;LIGNE(INDIRECT("1:"&NBCAR(D1)));2)))>96));0);99)
Formule matricielle à valider par CTRL + MAJ + ENTREE

en A1 :

Code:
=SI(ESTNUM(TROUVE("ép.";D1));GAUCHE(D1;TROUVE("ép.";D1)-1);SUBSTITUE(D1;" "&C1;""))
en B1 :

Code:
=SI(ESTNUM(TROUVE("ép.";D1));SUBSTITUE(STXT(D1;TROUVE("ép.";D1)+4;99);" "&C1;"");"")
La formule matricielle en C1 permet de détecter le rang de la majuscule qui est suivie d'une minuscule, donc emplacement du prénom.

@+

Edit : J'ai corrigé la matricielle de C1 pour tenir compte des prénoms composés (deux majuscules).

@+
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
546

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87