Этот протестирован и работает (на основе оригинального поста Брэда):
=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
Если ваши оригинальные строки могут содержать трубу "|" символ, затем замените оба вышеупомянутых с другим символом, который не появится в вашем источнике. (Я подозреваю, что оригинал Брэда был сломан, потому что непечатный символ был удален в переводе).
Бонус: как это работает (справа налево):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
- Количество пробелов в исходной строке
SUBSTITUTE(A1," ","|", ... )
- Заменяет только последний пробел на |
FIND("|", ... )
- Находит абсолютную позицию замененного |
(это был последний пробел)
Right(A1,LEN(A1) - ... ))
- Возвращает все символы после этого|
РЕДАКТИРОВАТЬ: для учета случая, когда исходный текст не содержит пробелов, добавьте следующее в начало формулы:
=IF(ISERROR(FIND(" ",A1)),A1, ... )
делая всю формулу сейчас:
=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))
Или вы можете использовать =IF(COUNTIF(A1,"* *")
синтаксис другой версии.
Если исходная строка может содержать пробел в последней позиции, добавьте функцию обрезки при подсчете всех пробелов: Сделайте функцию следующей:
=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))