Ten jest przetestowany i działa (na podstawie oryginalnego postu Brada):
=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Jeśli oryginalne ciągi znaków mogą zawierać pionową kreskę „|” znak, a następnie zamień oba w powyższym na inny znak, który nie pojawi się w twoim źródle. (Podejrzewam, że oryginał Brada został uszkodzony, ponieważ z tłumaczenia usunięto niedrukowalny znak).
Bonus: Jak to działa (od prawej do lewej):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
- Liczba spacji w oryginalnym ciągu
SUBSTITUTE(A1," ","|", ... )
- Zastępuje tylko ostatnią spację za |
FIND("|", ... )
- Znajduje bezwzględną pozycję tego zastąpionego |
(to była ostatnia spacja)
Right(A1,LEN(A1) - ... ))
- Zwraca wszystkie znaki po tym|
EDYCJA: aby uwzględnić przypadek, w którym tekst źródłowy nie zawiera spacji, dodaj na początku wzoru:
=IF(ISERROR(FIND(" ",A1)),A1, ... )
tworząc teraz całą formułę:
=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))
Lub możesz użyć =IF(COUNTIF(A1,"* *")
składni drugiej wersji.
Jeśli oryginalny ciąg może zawierać spację na ostatniej pozycji, dodaj funkcję przycinającą, licząc wszystkie spacje: Wykonując funkcję następującą:
=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))