Celui-ci est testé et fonctionne (basé sur Brad post original):
=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Si vos chaînes d'origine peut contenir un pipe "|" le caractère, puis de remplacer à la fois dans le ci-dessus avec quelques autres caractères qui ne s'affichent pas dans votre source. (Je soupçonne que Brad original a été rompue en raison d'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 juste la finale de l'espace avec un |
FIND("|", ... )
– Trouve la position absolue de l'remplacé |
(c'était la dernière de l'espace)
Right(A1,LEN(A1) - ... ))
– Renvoie tous les caractères après que l' |
EDIT: pour tenir compte du cas où le texte source ne contient pas d'espaces, ajoutez les lignes suivantes au début de la formule:
=IF(ISERROR(FIND(" ",A1)),A1, ... )
rendre l'ensemble de la formule maintenant:
=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))
Ou vous pouvez utiliser l' =IF(COUNTIF(A1,"* *")
de la syntaxe de l'autre version.
Lorsque la chaîne d'origine peut contenir un espace à la dernière position, ajouter une garniture de fonctions, tout en comptant tous les espaces: Faire de la fonction suivantes:
=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))