XL 2016 Extraction nom composé

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

  • Extraction nom compose.xlsm
    17.8 KB · Affichages: 5
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

AtTheOne

XLDnaute Accro
Supporter XLD
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

  • Extraction nom compose.xlsm
    17.9 KB · Affichages: 8

AtTheOne

XLDnaute Accro
Supporter XLD
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 !)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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%.
 

AtTheOne

XLDnaute Accro
Supporter XLD
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:

Lorenzini

XLDnaute Occasionnel
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...
 

Lorenzini

XLDnaute Occasionnel
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, ...
 

Lorenzini

XLDnaute Occasionnel
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 !
👍 😊
 

Lorenzini

XLDnaute Occasionnel
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 👍😊
 

Lorenzini

XLDnaute Occasionnel
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 !
😊👍
 

dysorthographie

XLDnaute Accro
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

  • Prénom.zip
    488.8 KB · Affichages: 5
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83