從Excel中最後一個特殊字元中提取文本

從Excel中最後一個特殊字元中提取文本

例子:

*AB|USA|California|los angles_backup
*AB|USA|California_backup

問題:我需要最後一個管道(|)之後的單字。在第一個範例中,我只需要洛杉磯角,對於第二個範例,我只需要加利福尼亞州。

答案1

使用

Function GetLastPartAfterPipe(str As String) As String
    tmp = Split(str, "|")
    GetLastPartAfterPipe = tmp(UBound(tmp))
End Function

且 B1=GetLastPartAfterPipe(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)然後傳回該子字串下劃線之前的部分。

在此輸入影像描述

相關內容