XL 2016 Extraction nom composé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lorenzini

XLDnaute Occasionnel
Bonjour,

Je bute sur un problème d'extraction de nom composé...
Dans une colonne, j'ai des noms et prénoms, du genre :

Dubois Jean-luc
Piostrin Claude
Don Bosco Giovanni

Dans 2 autres colonnes distinctes, j'extrais pour obtenir séparément :

Dubois dans une colonne et Jean-luc dans une autre
Piostrin dans une colonne et Claude dans une autre
et ainsi de suite...

Le problème est quand j'arrive à des noms composés, du genre :
Don Bosco Giovanni

Mes formules me donnent :
Don dans une colonne et Bosco Giovanni dans une autre !

Je ne parviens tout simplement pas à dire à Excel :
Si le nom est composé, extrais ce qu'il y'a APRES le 2EME espace et pas le 1er !!

J'avoue que je m'emberlificote les pinceaux avec mes formules ! ...Comment faire ?

Merci pour vos aides 😊
 

Pièces jointes

Solution
Bonjour à toutes & à tous, bonjour @Lorenzini, Bonjour @sylvanu
Une proposition, à condition que les prénoms soient en dernière position et qu'ils ne comprennent pas d'espaces (mais des traits d'union)
Tableau transformé en tableau structuré
Les formules
Noms :
VB:
=GAUCHE([@[NOM ET PRENOM]];TROUVE("#";SUBSTITUE([@[NOM ET PRENOM]];" ";"#";NBCAR([@[NOM ET PRENOM]])-NBCAR(SUBSTITUE([@[NOM ET PRENOM]];" ";""))))-1)
Prénoms :
VB:
=SUBSTITUE([@[NOM ET PRENOM]];[@Nom]&" ";"")
Bon courage
Bonjour à toutes & à tous, bonjour @Lorenzini, Bonjour @sylvanu
Une proposition, à condition que les prénoms soient en dernière position et qu'ils ne comprennent pas d'espaces (mais des traits d'union)
Tableau transformé en tableau structuré
Les formules
Noms :
VB:
=GAUCHE([@[NOM ET PRENOM]];TROUVE("#";SUBSTITUE([@[NOM ET PRENOM]];" ";"#";NBCAR([@[NOM ET PRENOM]])-NBCAR(SUBSTITUE([@[NOM ET PRENOM]];" ";""))))-1)
Prénoms :
VB:
=SUBSTITUE([@[NOM ET PRENOM]];[@Nom]&" ";"")
Bon courage
 

Pièces jointes

Bonjour @patricktoulon, rebonjour @sylvanu,
La solution que je propose fonctionne à deux conditions : les prénoms viennent après les noms, ils ne comportent pas d'espace mais des traits d'union comme dans l'exemple de @Lorenzini.
Mais c'est vrai qu'en respectant l'ordre nom, prénom et en utilisant un autre séparateur style # ou | c'est plus sûr.
Moi, ici, je remplace le dernier espace par # et après je découpe ...
A bientôt
(tout ça avec mon téléphone !)
 
Re,
ils ne comportent pas d'espace mais des traits d'union
Malheureusement, aujourd'hui, le trait d'union tend à disparaitre.
Qui plus est, il peut ne pas exister comme pour "Jean Auguste Dominique Ingres " ( voir Lien ), ou encore ne pas exister de "façon légale" comme" Jasmine Audrey Tremblay " ( voir Lien )
C'est pour cela qu'il n'existe aucune façon simple de résoudre le problème à 100%.
 
C'est pour cela qu'il n'existe aucune façon simple de résoudre le problème à 100%.
Bien d'accord avec toi, pour être le plus général possible il n'y a pas de solution sans se fixer des règles. Par exemple, l'INSEE dans ses fichiers des personnes décédées (environs 600 000 par an) utilise le masque "nom * prénoms", et n'introduit que des espaces, des traits d'union ou des apostrophes dans chaque composante. Le prénom d'usage étant le premier listé.
Dans mon entreprise, on utilisait le . comme séparateur ...
@Lorenzini doit en faire de même, j'ai l'impression qu'il n'affiche que le prénom d'usage, en dernière position, et qu'il utilise le trait d'union ... mais on ne sais pas vraiment...
 
Dernière édition:
re
Bonjour
c'est tout simplement impossible pour excel de faire le distinguo entre le nom et prénom en cas de nom ou prénom composé
a moins d'avoir une feuille dictionnaire
la solution serait de séparer le nom et prénom par un symbole ou un caractère unique

tu peux arrêter de te casser la tête pour rien
Effectivement, je me suis cassé la tête et je n'imaginais pas la complexité de la chose...
 
Bien d'accord avec toi, pour être le plus général possible il n'y a pas de solution sans se fixer des règles. Par exemple, l'INSEE dans ses fichiers des personnes décédées (environs 600 000 par an) utilise le masque "nom * prénoms", et n'introduit que des espaces, des traits d'union ou des apostrophes dans chaque composantes. Le prénom d'usage étant le premier listé.
Dans mon entreprise, on utilisait le . comme séparateur ...
@Lorenzini doit en faire de même, j'ai l'impression qu'il n'affiche que le prénom d'usage, en dernière position, et qu'il utilise le trait d'union ... mais on ne sais pas vraiment...
Bonjour,

Effectivement, j'avais pensé au trait d'union comme séparateur, mais uniquement dans le prénom... p. ex : Jean-paul, Anne-marie, ...
 
Bonjour à toutes & à tous, bonjour @Lorenzini, Bonjour @sylvanu
Une proposition, à condition que les prénoms soient en dernière position et qu'ils ne comprennent pas d'espaces (mais des traits d'union)
Tableau transformé en tableau structuré
Les formules
Noms :
VB:
=GAUCHE([@[NOM ET PRENOM]];TROUVE("#";SUBSTITUE([@[NOM ET PRENOM]];" ";"#";NBCAR([@[NOM ET PRENOM]])-NBCAR(SUBSTITUE([@[NOM ET PRENOM]];" ";""))))-1)
Prénoms :
VB:
=SUBSTITUE([@[NOM ET PRENOM]];[@Nom]&" ";"")
Bon courage
Bonjour AtTheOne,

Je pense que ta solution me convient parfaitement !
Je la garde précieusement !
Merci !
👍 😊
 
Bonjour à toutes & à tous, bonjour @Lorenzini, Bonjour @sylvanu
Une proposition, à condition que les prénoms soient en dernière position et qu'ils ne comprennent pas d'espaces (mais des traits d'union)
Tableau transformé en tableau structuré
Les formules
Noms :
VB:
=GAUCHE([@[NOM ET PRENOM]];TROUVE("#";SUBSTITUE([@[NOM ET PRENOM]];" ";"#";NBCAR([@[NOM ET PRENOM]])-NBCAR(SUBSTITUE([@[NOM ET PRENOM]];" ";""))))-1)
Prénoms :
VB:
=SUBSTITUE([@[NOM ET PRENOM]];[@Nom]&" ";"")
Bon courage
Merci pour ta solution AtTheOne ; je la garde précieusement 👍😊
 
Bonjour à toutes & à tous, bonjour @Lorenzini, Bonjour @sylvanu
Une proposition, à condition que les prénoms soient en dernière position et qu'ils ne comprennent pas d'espaces (mais des traits d'union)
Tableau transformé en tableau structuré
Les formules
Noms :
VB:
=GAUCHE([@[NOM ET PRENOM]];TROUVE("#";SUBSTITUE([@[NOM ET PRENOM]];" ";"#";NBCAR([@[NOM ET PRENOM]])-NBCAR(SUBSTITUE([@[NOM ET PRENOM]];" ";""))))-1)
Prénoms :
VB:
=SUBSTITUE([@[NOM ET PRENOM]];[@Nom]&" ";"")
Bon courage
Excellent ! Ta solution me convient parfaitement !
MERCI !
😊👍
 
Bonjour,
Une solution qui fonctionne à 99% consiste à avoir une table d'échenillons la plus expositive et une table de particules { Don,Da Le L',De et }.

Ce genre de traitement ce fait rarement car prend un temps considérable.

dans le temps j'avais une liste des Particules (onomastique) mais je ne la trouve plus!
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
264
Réponses
34
Affichages
2 K
Retour