Как я могу извлечь 6-значный номер из текста в Excel? Примеры показаны ниже - PullRequest
0 голосов
/ 21 октября 2019

Я хочу извлечь пин-код из адреса. Например, я хочу извлечь 751003 из нижеприведенного адреса:

Сикша О, Университет Аннушандхан, Больница Сум Сум, Кандагири, К-8, Бхубанешвар-751003, Одиша

и другой пример, Iхотите извлечь 799001 из нижеприведенного адреса: дистрибьюторы лекарств Saha;Сантипара, Масзид Роуд, Агартала-799 001, Трипура

Ответы [ 4 ]

2 голосов
/ 21 октября 2019

Попробуйте использовать регулярные выражения:

Sub ExtractCode()
    Set regex = CreateObject("VBScript.RegExp")
    ' pattern explanation: \d{6} - match 6 digits
    regex.Pattern = "\d{6}"
    ' Get address from cell A1 and remove all spaces
    testString = Replace(Cells(1, 1), " ", "")
    MsgBox regex.Execute(testString)(0).Value
    ' Get address from cell A2 and remove all spaces
    testString = Replace(Cells(2, 1), " ", "")
    MsgBox regex.Execute(testString)(0).Value
End Sub
1 голос
/ 21 октября 2019

Предполагая, что ваши данные начинаются в ячейке A2, попробуйте следующую формулу.

=LOOKUP(1,1/MID(SUBSTITUTE(A2," ",""),ROW($A$1:$A$199),6),MID(SUBSTITUTE(A2," ",""),ROW($A$1:$A$199),6))

Примечание для OP: SO Ожидает, что пользователь попытается найти решение, и включит описание попытки и возникшей трудности.

Редактировать : см. Ниже Редактировать.

=LOOKUP(1,1/MID(SUBSTITUTE(A2," ","")&"a",ROW($A$1:$A$199),6),MID(SUBSTITUTE(A2," ",""),ROW($A$1:$A$199),6))
0 голосов
/ 21 октября 2019

Вот довольно простой подход, учитывая следующие данные:

enter image description here

Sub GetVals()

Dim rng As Range, cl As Range
Dim lr As Long

With Sheet1 'Change accordingly
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row
    Set rng = .Range("A1:A" & lr)
    For Each cl In rng
        cl.Offset(0, 1) = Val(Mid(cl, InStrRev(cl, "-") + 1, Len(cl)))
    Next cl
End With

End Sub

enter image description here

Val получит числовые значения из позиции последнего "-" (найден через InstrRev без пробела (как показывает желаемый результат в вопросе).

0 голосов
/ 21 октября 2019

Пример, который я использовал

Saha Drug Distributors; Santipara,Maszid Road,Agartala-799 001,Tripura

U может использовать следующие формулы для извлечения PIN-кода:

=MID(TRIM(A1),FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))-3,7)

Или

=MID(A2,FIND("-",A2)+1,7)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...