Premier espace à droite
phil33140
-
phil33140 -
phil33140 -
Bonjour,
Dans une formule Excel,
Je cherche à extraire le prenom d'un chaine de noms et prenom. Exemple :
DUPONT DURANT Louis
donc il faut que je puisse déterminer le nombre de caractéres avant le premier 'espace en partant de la droite.
Merci pour votre aide
Dans une formule Excel,
Je cherche à extraire le prenom d'un chaine de noms et prenom. Exemple :
DUPONT DURANT Louis
donc il faut que je puisse déterminer le nombre de caractéres avant le premier 'espace en partant de la droite.
Merci pour votre aide
A voir également:
- Premier espace à droite
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Les textes ne doivent pas être en retrait à droite et à gauche - Guide
- Espace stockage google - Guide
- Barre droite mac - Forum MacOS
6 réponses
bonjour,
j'ai rencontré un problème similaire il y a un moment
et j'ai écris ça car il n'existe pas de fonction inverse.
Si cela te convient alors pense à mettre en résolu
=TrouveVersGauche(" ";A8;19) renverra 14
=STXT(A8;F8;2) renverra <Espace L>
Le code ci joint doit être mis dans un module
j'ai rencontré un problème similaire il y a un moment
et j'ai écris ça car il n'existe pas de fonction inverse.
Si cela te convient alors pense à mettre en résolu
=TrouveVersGauche(" ";A8;19) renverra 14
=STXT(A8;F8;2) renverra <Espace L>
Le code ci joint doit être mis dans un module
Sub test()
Dim X, Y As Integer
Y = Len("DUPOND DURAND Louis")
X = TrouveVersGauche(" ", "DUPOND DURAND Loius", Y)
End Sub
Public Function TrouveVersGauche(Charactère As String, Chaine As String, Position As Integer) As Integer
Application.Volatile
Dim i As Integer
For i = Position - 1 To 0 Step -1
If Mid(Chaine, i, 1) = Charactère Then
TrouveVersGauche = i
Exit For
End If
Next
End Function
Utilisateur anonyme
Oups Bidouilleu... je rafraichis pas et j'ai pas vu ton message. Pardon :)
Bonjour,
Pour isoler le prénom, tu peux sélectionner la colonne avec noms et prénoms avec 3 ou 4 colonnes vides à droite
=> Données / Convertir / cocher délimité / et cocher l'espace comme séparateur / Terminer
Chaque mot entre espace sera dans une colonne.
S'il y a des noms composés sans trait d'union, ils seront scindés. Tu les regroupes sur une autre colonne en concaténant comme ceci =A1&" "&B1 et tu tires vers le bas
Puis un copier / collage spécial / valeur sur les deux nouvelles colonnes nom et prénom récupérés pour figer, et tu peux supprimer le reste.
Sinon, j'ai déjà vu une formule matricielle qui fait ça mais s'il y a des prénoms composés sans trait d'union, ça se complique... mais il y aura certainement d'autres idées !
Pour isoler le prénom, tu peux sélectionner la colonne avec noms et prénoms avec 3 ou 4 colonnes vides à droite
=> Données / Convertir / cocher délimité / et cocher l'espace comme séparateur / Terminer
Chaque mot entre espace sera dans une colonne.
S'il y a des noms composés sans trait d'union, ils seront scindés. Tu les regroupes sur une autre colonne en concaténant comme ceci =A1&" "&B1 et tu tires vers le bas
Puis un copier / collage spécial / valeur sur les deux nouvelles colonnes nom et prénom récupérés pour figer, et tu peux supprimer le reste.
Sinon, j'ai déjà vu une formule matricielle qui fait ça mais s'il y a des prénoms composés sans trait d'union, ça se complique... mais il y aura certainement d'autres idées !
Pas de mal
moi j'ai simplifié comme je peux mais je précise que si la fonction ne trouve pas le charactère cherché elle renvoie #VALEUR
; )
moi j'ai simplifié comme je peux mais je précise que si la fonction ne trouve pas le charactère cherché elle renvoie #VALEUR
; )
Bonjour tout le monde,
et par formule :
=STXT(A1;MAX((STXT(A1;LIGNE(1:50);1)=" ")*LIGNE(1:50));50)
formule matricielle à valider par shift+ctrl+entrée
Si la chaine peut dépasser les 50 car. modifier les 50 (3 fois)
eric
et par formule :
=STXT(A1;MAX((STXT(A1;LIGNE(1:50);1)=" ")*LIGNE(1:50));50)
formule matricielle à valider par shift+ctrl+entrée
Si la chaine peut dépasser les 50 car. modifier les 50 (3 fois)
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
PS : une correction car j'avais oublié la recopie incrémentée vers le bas (merci argixu :-) ):
=STXT(A1;MAX((STXT(A1;LIGNE($1:$50);1)=" ")*LIGNE($1:$50));50)
et une autre intéressante qu'argixu n'a pas osé proposer :
=DROITE(A1;EQUIV(" ";STXT(A1;NBCAR(A1) - LIGNE(INDIRECT("1:" & NBCAR(A1)));1);0))
Toutes les 2 sont matricielles
eric
=STXT(A1;MAX((STXT(A1;LIGNE($1:$50);1)=" ")*LIGNE($1:$50));50)
et une autre intéressante qu'argixu n'a pas osé proposer :
=DROITE(A1;EQUIV(" ";STXT(A1;NBCAR(A1) - LIGNE(INDIRECT("1:" & NBCAR(A1)));1);0))
Toutes les 2 sont matricielles
eric