从 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=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)然后返回该子字符串下划线之前的部分。

在此处输入图片描述

相关内容