Как получить строку между двумя символами в Excel / электронная таблица - PullRequest
0 голосов
/ 12 июня 2019

У меня есть эта строка

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

как мне получить только Гавайские сады?

Я уже пробовал использовать некоторые

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

, вместо этого я получаю наждак

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

Было ли у вас намерение включить таблицы Google (глядя на ваше название)?Если это так, вы можете использовать функцию REGEXEXTRACT().Например, в B1

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

enter image description here

В Excel вы можете построить UDF, используя это правило регулярных выражений, например так (например):

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

Вызовите функцию в B1 следующим образом:

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

enter image description here

2 голосов
/ 12 июня 2019

Если перед строкой, которую вы хотите извлечь, всегда есть две косые черты, основываясь на ответе Тайлера М * , вы можете использовать этот

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

Это заменяет второе вхождение / символом, который обычно не встречается в адресе, что делает его доступным для поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...