2016-11-18 10 views
0

Это может быть легко для всего компьютера wiz здесь! Я хотел бы извлечь строку символов в текстовое поле EXCEL. Набор данных довольно грязный, есть пространство, символы и другой текст, который мне не нужен. Например:Сжатие данных в EXCEL

мне нужно взять ABC12345D1 из «ABC» ABCABC12345D1

       "ABC,ABCABC12345D1" 
          "KOhn!ABCABC12345D1" 
          "ABCABC12345D2 ABCABC12345D1" 
          "ABCABC12345D1ABCABC12345D1" 
          "MCDONALDABCABC12345D1" 

Но это только один из идентификатора я должен извлечь из. Я хочу, чтобы была формула, которую я могу перетащить и снести до остальной части столбца.

Итак, ABCABC12345D1 сделан из

_ _ _ Первые три символа является ID

_ _ _ _ _ Вторая часть является расположение тег

_ _ и наименьшее прошлое, независимо от того, включено ли оно или нет (я могу жить, если эта удаленная добыча будет извлечена.

Теперь я попытался взять правильные 8 или 10 символов и извлечь все пространство, но есть более четкий способ потянуть эти данные?

ответ

0

Regex?

Function Regex(Cell) 
    Dim RE As Object 

    Set RE = CreateObject("vbscript.regexp") 

    RE.Pattern = "(\w{6}\d{5}\w\d)" 
    RE.Global = True 
    RE.IgnoreCase = True 
    Set Matches = RE.Execute(Cell) 

    For Each res In Matches 
     Regex = Regex & "," & res 
    Next res 
    Regex = Mid(Regex, 2) 
End Function 

Открытый редактор VBA с ALT + F11.
Вставить -> Модуль Скопируйте код, приведенный выше, в окно модуля. Закрыть редактор VBA.

В листе Excel напишите =Regex(A1), чтобы активировать функцию.

enter image description here

+0

Спасибо! Есть ли более простой способ сделать это? Я предполагаю, что это VBA? –

+0

Да, это VBA. Не видел, что вы не играли в VBA. Извините за это ... Я могу сделать это UDF? Таким образом, вы можете использовать его в качестве формулы. Скажем, если текст находится в A1, вы должны иметь возможность в B1 написать 'REGEX (« A1 »)', и он вернет нужную вам часть. Это тебя устраивает? – Andreas

+0

Вы вроде должны использовать регулярное выражение как (я думаю), это не всегда ABCABC ... С регулярным выражением вы объявляете, что искать, я написал регулярное выражение для шести символов, пяти цифр, одного символа и одной цифры в этом порядке. Если он видит это, независимо от того, какие символы или цифры соответствует – Andreas