简体   繁体   中英

How to get string in between two characters in excel/spreadsheet

I have this string

Weiss,Emery/Ap #519-8997 Quam. Street/Hawaiian Gardens,IN - 79589|10/13/2010

how do I get the Hawaiian Gardens only?

I already tried Using some

=mid(left(A1,find("/",A1)-1),find(",",A1)+1,len(A1))

it gives me emery instead

If there are always two slashes before the string you want to extract, based on Tyler M's answer you can use this

=MID(E1,
     FIND("~",SUBSTITUTE(E1,"/","~",2))+1,
     FIND(",",RIGHT(E1,LEN(E1)-FIND("~",SUBSTITUTE(E1,"/","~",2))))-1
     )

This substitutes the second occurence of / with a character which normally would not occur in the address, thus making it findable.

Was your intention to also include Google Spreadsheets (looking at your title)? If so,you can use the REGEXEXTRACT() function. For example in B1

=REGEXEXTRACT(A1,"\/([\w\s]*)\,")

在此处输入图片说明

In Excel you could build a UDF using this regex rule like so (as an example):

Function REGEXEXTRACT(S As String, PTRN As String) As String

'We will get the last possible match in your string...
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
With regex
    .Pattern = PTRN
    .Global = True
End With

Set matches = regex.Execute(S)
For Each Match In matches
    If Match.SubMatches.Count > 0 Then
        For Each subMatch In Match.SubMatches
            REGEXEXTRACT = subMatch
        Next subMatch
    End If
Next Match

End Function

Call the function in B1 like so:

=REGEXEXTRACT(A1,"\/([\w\s]*)\,")

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM