извлечь текст из последнего специального символа в excel

извлечь текст из последнего специального символа в excel

Пример:

*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)затем возвращает часть этой подстроки до подчеркивания.

введите описание изображения здесь

Связанный контент