我有三个数据在一个单元格中,我想分开。现在我的细胞是这个样子的所有不同的位置,电子邮件和电话号码:拆分不一致的数据
我想我的数据是这样的:
我要找对于任何类型的Excel公式或VBA代码来使这成为可能。我想也许MID,LEFT,RIGHT和FIND的某种组合会起作用,但我似乎无法做到。
我有三个数据在一个单元格中,我想分开。现在我的细胞是这个样子的所有不同的位置,电子邮件和电话号码:拆分不一致的数据
我想我的数据是这样的:
我要找对于任何类型的Excel公式或VBA代码来使这成为可能。我想也许MID,LEFT,RIGHT和FIND的某种组合会起作用,但我似乎无法做到。
好的。这些都是很长的公式,所以最好复制并粘贴它们。
假设您的数据从单元格A2开始。
在单元格B2,输入此公式:
=SUBSTITUTE(A2,MID(A2,FIND("|",SUBSTITUTE(A2," ","|",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-3)),99),"")
在小区C2中,输入以下公式:
=SUBSTITUTE(MID(A2,FIND("|",SUBSTITUTE(A2," ","|",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-3))+1,99),MID(A2,FIND("|",SUBSTITUTE(A2," ","|",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-2)),99),"")
在单元格D2,输入此公式:
=SUBSTITUTE(MID(A2,FIND("|",SUBSTITUTE(A2," ","|",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-2))+1,99),MID(A2,FIND("|",SUBSTITUTE(A2," ","|",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1)),99),"")
在单元格E2,输入此公式:
=MID(A2,FIND("|",SUBSTITUTE(A2," ","|",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))+1,99)
现在选择范围B2:E2并向下复制,只要您需要。
就是这样。
这完美的作品!谢谢! – eee8036
不客气! –
VBA版本(在A列中的所有文本)
Option Explicit
Public Sub customSplit()
Dim part1, part2, part3, cel As Range, v As Variant, i As Long
With ActiveSheet.UsedRange
v = .Columns("A:E")
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If Len(v(i, 1)) > 0 Then
part1 = InStr(v(i, 1), "@")
If part1 > 0 Then
part2 = InStrRev(v(i, 1), " ", part1)
part3 = Split(Right(v(i, 1), Len(v(i, 1)) - part2))
If UBound(part3) = 3 Then
v(i, 2) = Left(v(i, 1), part2 - 1)
v(i, 3) = part3(0)
v(i, 4) = part3(1)
v(i, 5) = part3(2) & " " & part3(3)
End If
End If
End If
Next
With .Columns("A:E")
.Value = v
.AutoFit
End With
End With
End Sub
行总数:1,048,576;持续时间:13.625秒
样品结果:
Associate Professor [email protected] 777-123-4567 GWC 123 Associate Professor [email protected] 777-123-4567 GWC 123
Business Operation Specialist [email protected] 777-456-7890 GWC 456 Business Operation Specialist [email protected] 777-456-7890 GWC 456
Associate Professor jane.doeexample.com 777-123-4567 GWC 124
Business Operation Specialist [email protected] 777-456-7890 457
Associate Professor [email protected] 777-123-4567 GWC 125 Associate Professor [email protected] 777-123-4567 GWC 125
Associate Professor [email protected] 777-123-4567 GWC 124 Associate Professor [email protected] 777-123-4567 GWC 124
Business Operation Specialist [email protected] 777-456-7890 GWC 457 Business Operation Specialist [email protected] 777-456-7890 GWC 457
感谢您的代码!在设置part2 = InStrRev时发生错误...说“运行时错误'5':无效的过程调用或参数” – eee8036
源数据不包含“@”符号时引发该错误(电子邮件地址)。我添加了验证来检查“word x N +”的源模式“+ email +”“+ phone +”“+ word x 2' –
有每片数据之间的分隔符? – laylarenee