在excel快速将一列地址信息拆分成三列属性字段

要求:
在excel中快速将一列地址信息拆分成三列属性字段,原字段如下:
在excel快速将一列地址信息拆分成三列属性字段_第1张图片
拆分结果如下:
在excel快速将一列地址信息拆分成三列属性字段_第2张图片
使用VB代码实现:

Sub func()
Dim s$, b()
'选择要处理的行数 从a2到a7
ar = [a2:a7].Value
ReDim b(1 To UBound(ar), 1 To 4)
With CreateObject("vbscript.regexp")
	'提取属性的正则表达式
    .Pattern = "(.*?期)(.*?单元)(.*?室)"
    For i = 1 To UBound(ar)
        s = ar(i, 1)
        '如果存在,则执行下面的语句
        If .test(s) Then
            Set sm = .Execute(s)(0).submatches
            '第一个属性
            b(i, 1) = sm(0)
            '第二个属性
            b(i, 2) = sm(1)
            '第三个属性
            b(i, 3) = sm(2)
        End If
    Next
End With
'将提取的属性值从b2列开始,依次向后填充
[b2].Resize(i - 1, 3) = b
End Sub

完毕!

你可能感兴趣的:(数据分析)