как получить определенные цифры - PullRequest
0 голосов
/ 15 июля 2010

У меня есть столбец в Excel, который экспортируется из базы данных SQL.

Столбцы читаются так:

'Payment Funds: (654321) Company charged Public - Payment of transfer.  Charged from account xyz to abc (into autopac agent).'

Ссылочный номер: 654321, счет: xyz и abc; комментарий: (в агент autopac) - различаются для всех записей в этом столбце.

Мне нужно получить справочные номера только для всех записей, как мне поступить? Предпочтительный метод в SQL, но будет принимать ответ на основе электронных таблиц ....

Спасибо

Вуду

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Если вы используете MS SQL Server, то ниже должно работать. Строковые функции могут отличаться в разных СУБД. Хорошая идея указать, какую технологию вы используете в вопросе.

SELECT
    SUBSTRING(col, CHARINDEX('(', col) + 1, CHARINDEX(')', col) - CHARINDEX('(', col) - 1)
FROM
    Some_Table
0 голосов
/ 15 июля 2010

Попробуйте, это функция регулярного выражения для Excel:

Private Function RegularExpression(SearchString As String, Pattern As String) As String 

    Dim RE As Object, REMatches As Object 

    'Create the regex object'  
    Set RE = CreateObject("vbscript.regexp") 
    With RE 
        .MultiLine = False 
        .Global = False 
        .IgnoreCase = True     
        'set the search pattern using parameter Pattern' 
        .Pattern = Pattern  
    End With 

    'Search for the pattern'  
    Set REMatches = RE.Execute(SearchString)  
    If REMatches.Count > 0 Then 
        'return the first match' 
        RegularExpression = REMatches(0)  
    Else 
        'nothing found, return empty string' 
        RegularExpression = "" 
    End If 

End Function 

Вы можете просто сделать его публичным и использовать его вот так
=RegularExpression(A2,"[0-9]{6}") Это вывело бы первые 6 цифр последовательности в ячейке A2
Примечание: это более старая функция, поэтому вам, возможно, придется немного поиграться, но все должно быть в порядке

...