Celui-ci est testé et fonctionne (basé sur le post original de Brad):
=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Si vos chaînes d'origine peuvent contenir un tube "|" caractère, puis remplacez les deux dans ce qui précède par un autre caractère qui n'apparaîtra pas dans votre source. (Je soupçonne que l'original de Brad a été cassé car un caractère non imprimable a été supprimé dans la traduction).
Bonus: Comment ça marche (de droite à gauche):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
- Nombre d'espaces dans la chaîne d'origine
SUBSTITUTE(A1," ","|", ... )
- Remplace uniquement l' espace final par un |
FIND("|", ... )
- Trouve la position absolue de celui remplacé |
(qui était l'espace final)
Right(A1,LEN(A1) - ... ))
- Renvoie tous les caractères après cela|
EDIT: pour tenir compte du cas où le texte source ne contient pas d'espaces, ajoutez ce qui suit au début de la formule:
=IF(ISERROR(FIND(" ",A1)),A1, ... )
faire la formule entière maintenant:
=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))
Ou vous pouvez utiliser la =IF(COUNTIF(A1,"* *")
syntaxe de l'autre version.
Lorsque la chaîne d'origine peut contenir un espace à la dernière position, ajoutez une fonction de découpage tout en comptant tous les espaces: Rendre la fonction la suivante:
=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))