
Пример:
*AB|USA|California|los angles_backup
*AB|USA|California_backup
Вопросы: Мне нужно слово после последней вертикальной черты (|). В первом примере мне нужны только Los angles, а во втором примере мне нужны только California.
решение1
Использовать
Function GetLastPartAfterPipe(str As String) As String
tmp = Split(str, "|")
GetLastPartAfterPipe = tmp(UBound(tmp))
End Function
и B1=ПолучитьПоследнююЧастьПослеТрубы(A1)
решение2
Вот решение, использующее только встроенные функции:
- сначала вычислите местоположение последнего
|
:
=MAX(IF(MID(A1,ROW(OFFSET(A1,1,1,LEN(A1))),1)="|",ROW(OFFSET(A1,1,1,LEN(A1))),""))
это формула массива, поэтому нажмите CTRL+SHIFT+ENTER после ее ввода - во-вторых, вы можете получить желаемый текст:
=MID(A1,B1+1,LEN(A1)-B1)
решение3
Поскольку в конце всего есть «_backup», возможно, лучше сделать это в два этапа, чем создавать одну очень длинную формулу.
Шаг первый, B
чтобы удалить данные после последнего конвейера:
=RIGHT(A1,LEN(A1)-FIND("@",SUBSTITUTE(A1,"|","@",LEN(A1)-LEN(SUBSTITUTE(A1,"|",""))),1))
Затем шаг два C
:
=MID(B1,1,FIND("_",B1)-1)
решение4
=LEFT(TRIM(RIGHT(SUBSTITUTE(A1,"|",REPT(" ",99)),99)),FIND("_",TRIM(RIGHT(SUBSTITUTE(A1,"|",REPT(" ",99)),99)))-1)
TRIM(RIGHT(SUBSTITUTE(A1,"|",REPT(" ",99)),99))
вернет последнюю подстроку, разделенную вертикальной чертой.LEFT(last_substring,FIND("_", last_substring)-1)
затем возвращает часть этой подстроки до подчеркивания.