extraire le premier mot dans une cellule excel

krikri9

XLDnaute Nouveau
Bonjour

J'ai des colonnes qui se composent de données telles que NOM Prénom

Et je souhaiterais les scinder un deux colonnes distinctes une avec le nom et une avec le prénom.

Et je n'ai aucune idée de la formule à utiliser...

Merci d'avance
 

mth

XLDnaute Barbatruc
Re : extraire le premier mot dans une cellule excel

Bonjour krikri9

Un essai, si ta cellule de départ est A1:

Pour le nom en B1:
Code:
=GAUCHE(A1;TROUVE(" ";A1)-1)

Pour le prénom en C1:
Code:
=STXT(A1;TROUVE(" ";A1)+1;NBCAR(A1)-TROUVE(" ";A1))

@ +

mth
 

manu18e

XLDnaute Nouveau
Re : extraire le premier mot dans une cellule excel

Merci Mth,

j'étais justement en train de browser Google car j'étais a la recherche de l'info.

j'ai le meme besoin que krikri9, j'ai testé et cela fonctionne parfaitement. Par contre, la valeur #valeur est renvoyé quand le champ ne contient qu'un seul mot (ici nom ou prénom).

Une solution pour qu'il ne traite pas la cellule ? une condition je suppose...

Voici la problématique :
 

Pièces jointes

  • Excel.gif
    Excel.gif
    5.6 KB · Affichages: 1 349
  • Excel.gif
    Excel.gif
    5.6 KB · Affichages: 1 240
  • Excel.gif
    Excel.gif
    5.6 KB · Affichages: 1 128

job75

XLDnaute Barbatruc
Re : extraire le premier mot dans une cellule excel

Bonsoir manu18e, krikri9, salut Mireille,

Les formules renvoient #VALEUR! quand il n'y a pas d'espace.

On peut les modifier comme suit :

Code:
=SI(ESTNUM(TROUVE(" ";A1));GAUCHE(A1;TROUVE(" ";A1)-1);"")

=SI(ESTNUM(TROUVE(" ";A1));STXT(A1;TROUVE(" ";A1)+1;99);"")

PS. tu ne m'en voudras pas Mireille pour la petite simplification :)

A+
 

Tibo

XLDnaute Barbatruc
Re : extraire le premier mot dans une cellule excel

Bonjour à tous,

Pour compléter la série, ceci :

Code:
=GAUCHE(A1;TROUVE(" ";A1&" ")-1)

qui permet également de gérer les mots seuls

@+

Edit : et une autre pour le prénom :

Code:
=STXT(A1;TROUVE(" ";A1&" ")+1;9^9)

Fonctionne également s'il n'y a pas de prénom

Petit rappel de principe : les noms et prénoms composés doivent être séparés par des traits d'union.

@+
 
Dernière édition:

manu18e

XLDnaute Nouveau
Re : extraire le premier mot dans une cellule excel

Bonjour a tous,

Merci a toutes vos contributions.

La réponse de Tibo est celle qui fonctionne le mieux...cependant, comment gérer les prénoms composé du type :

A1 : Jean Christophe DUPONT

J'aimerai avoir comme résultat :

Prénom dans B1 : : Jean-Christophe
Nom dans C1 : DUPONT

Merci pour vos reflexions.
 

job75

XLDnaute Barbatruc
Re : extraire le premier mot dans une cellule excel

Bonjour manue 18e, le fil,

Le fichier étudié doit avoir un minimum de cohérence, sinon on ne peut rien distinguer, exemple :

Jean Christophe DUPONT

Jean DUPONT LAJOIE

Jean Christophe DUPONT LA JOIE

etc etc...

Edit : si les NOMS sont toujours en MAJUSCULES, on peut aussi faire un traitement par une fonction macro. Je regarde ça.

A+
 
Dernière édition:

exene

XLDnaute Accro
Re : extraire le premier mot dans une cellule excel

Bonjour,

Sans vouloir empiéter sur les réponses apportées, une exemple avec des formules de John Walkenbach qui m'ont bien aidées.

Bonne journée.
 

Pièces jointes

  • extraire nom.xls
    18 KB · Affichages: 1 376

job75

XLDnaute Barbatruc
Re : extraire le premier mot dans une cellule excel

Re, salut exene,

Voici 2 fonctions macros, les NOMS doivent donc être en MAJUSCULES :

Code:
Function Nom$(txt$)
Dim i%, deb%
txt = Application.Trim(txt) 'supprime TOUS les espaces inutiles
For i = 1 To Len(txt)
  deb = i
  If Mid(txt, i, 3) = UCase(Mid(txt, i, 3)) Then Exit For
Next
For i = deb To Len(txt)
  If Mid(txt, i, 3) <> UCase(Mid(txt, i, 3)) Then Exit For
Next
If deb = i Then Exit Function 'nécessaire si pas de nom
Nom = Trim(Mid(txt, deb, i - 1))
End Function

Function Prénom$(txt$)
txt = Application.Trim(txt)
Prénom = Trim(Replace(txt, Nom(txt), ""))
End Function

Fichier joint.

A+
 

Pièces jointes

  • Classeur1.xls
    32 KB · Affichages: 523
  • Classeur1.xls
    32 KB · Affichages: 543
  • Classeur1.xls
    32 KB · Affichages: 572

Tibo

XLDnaute Barbatruc
Re : extraire le premier mot dans une cellule excel

Bonjour,

Sur le même principe que celui de Job : Nom écrit en majuscules, une solution par formule matricielle :

Prénom - Nom en A1

en B1 :

Code:
=STXT(A1;1;MAX((EXACT(MAJUSCULE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1));
STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*1=0)*LIGNE(INDIRECT("1:"&NBCAR(A1)))))

Formule matricielle à valider par CTRL + MAJ + ENTREE

en C1, sa petite soeur :

Code:
=STXT(A1;MAX((EXACT(MAJUSCULE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1));
STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*1=0)*LIGNE(INDIRECT("1:"&NBCAR(A1))))+2;9^9)

Formule également matricielle à valider par CTRL + MAJ + ENTREE

Le principe de ces formules est de détecter le rang de la dernière minuscule, donc en principe, la dernière lettre du prénom.

@+
 

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T