EXCEL中的数据清理

时间:2016-11-18 19:26:34

标签: excel text extraction data-scrubbing

对于这里的所有计算机来说,这可能很简单!我想在EXCEL文本框中提取一串字符。数据集有点乱,有空格,字符和其他我不需要的文本。例如:

我需要从“ABC ABCABC12345D1”中取出ABC12345D1

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

但这只是我必须提取的标识符之一。我希望有一个公式可以拖动到列的其余部分。

因此,ABCABC12345D1由

组成

_ _ _前三个字符是ID

_ _ _ _ _第二部分是位置标记

_ _并且过去最少的是它是开启还是关闭(如果可以提取,我可以活着。

现在我尝试使用正确的8或10个字符,并占用所有空间,但是有更清晰的方法来提取这些数据吗?

1 个答案:

答案 0 :(得分:0)

正则表达式?

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

使用ALT + F11打开VBA编辑器 插入 - >模 将上面的代码复制粘贴到模块窗口中。 关闭VBA编辑器。

在Excel工作表中写=Regex(A1)以激活该功能。

enter image description here