Extraire le dernier mot d'une cellule

Résolu
mistouv Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
Aliboron Martin Messages postés 3560 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,
Je dispose d'une liste dans une feuille Excel de plusieurs milliers de livres triés par le nom de l'auteur.
Malheureusement, cette liste a été faite avec "Prénom Nom", ce qui fait qu'elle est triée par le Prénom en majeur.
Je voudrais trouver une astuce, ou une macro (ce dont je suis incapable...) pour extraire le dernier mot de chaque cellule et le mettre dans la colonne suivante.
Bien sûr, tous les "Pierre" sont ensemble, mais également les "Pierre-Marie", les "Pierre Marie", etc...
Je pourrais ainsi résoudre la majorité des cas, et en extrayant le dernier mot qui est souvent composé d'un seul tenant, je disposerais du nom de l'auteur.
Un grand merci d'avance.


A voir également:

3 réponses

_Ritchi_ Messages postés 21333 Date d'inscription   Statut Contributeur Dernière intervention   6 104
 
Bonjour

Peut-être pourrais tu utiliser ceci:
1- sélectionne la colonne contenant les noms d'auteurs
2- ouvre le menu "Données -> Convertir"
3- coche "Délimité" puis clique sur "Suivant"
4- choisis "Espace" comme séparateur
5- regarde dans l'aperçu ce que cela donne:

6- si cela te convient, clique alors sur "Fin":


Ritchi
2
Aliboron Martin Messages postés 3560 Date d'inscription   Statut Contributeur Dernière intervention   962
 
Pour les cas de figure simples (un prénom et un nom séparés par un espace), tu peux assez facilement les extraire avec une formule :



Comme on le voit sur l'illustration, les choses se compliquent lorsqu'il y a plusieurs espaces, puisque la fonction TROUVE() recherche depuis la gauche et s'arrête au premier caractère trouvé. Il faudra donc reprendre les choses ensuite...

Plutôt qu'extraire le dernier mot d'une chaîne, on supprime le premier, en quelque sorte. ;-)


2
Aliboron Martin Messages postés 3560 Date d'inscription   Statut Contributeur Dernière intervention   962
 
Je complète : en cherchant un peu, j'ai trouvé une formule qui permet d'obtenir effectivement le dernier mot d'une chaîne sur cette page. Je l'ai un peu adaptée au contexte et voilà ce que ça donne :
=STXT(A1;CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))))+1;100)
(en gros, elle fait une recherche du nombre d'espaces pour pouvoir partir du dernier)

Bon, pour des noms de famille comportant un espace (ex : van Damme), ça complique toujours un peu puisque ça ne prend que le dernier...
0
Petianoudubearn Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour monsieur,
Votre réponse correspond presque à un souhait que j'ai : extraire les deux derniers mots d'une cellule... auriez-vous une combine ?
0
Aliboron Martin Messages postés 3560 Date d'inscription   Statut Contributeur Dernière intervention   962 > Petianoudubearn Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Dans ce cas, il faut adapter un peu la formule pour qu'elle tienne compte différemment du nombre d'espaces présents dans la cellule. Cela devient :
=STXT(A1;CHERCHE("|";SUBSTITUE(A1;" ";"|";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))-1))+1;100)
(c'est le -1 ajouté entre les parenthèses fermantes qui fait la différence !) ;-)
0
mistouv Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous,
Merci à vous deux d'avoir pris du temps pour m'aider à résoudre mon problème.
La formule =STXT(A1;CHERCHE..... fonctionne à la perfection.
En fait, j'avais commencé à essayer de gérer avec les séparateurs, mais bien sûr, les noms n'étaient pas dans la même colonne.
Il me faudra gérer manuellement les quelques noms composés, mais c'est vraiment dans très peu de cas.
Merci encore,
0