我必须在Excel中的数字之前或之后删除一些文本,有时两者都删除。即。
Dr Smith Surgery 154 which ever road
我需要将其拆分为Dr Smith Surgery 154
和which ever road
。
现在有些记录只有154 which ever road
。
任何人都可以提供建议吗?我有几千条记录要调整,手动这样做的想法让我想哭。
答案 0 :(得分:0)
选择要解析的单元格并运行这个小宏:
Sub Parser()
Dim s1 As String, r As Range, _
L As Long, i As Long
For Each r In Selection
s1 = r.Text
L = Len(s1)
For i = L To 1 Step -1
If IsNumeric(Mid(s1, i, 1)) Then
r.Offset(0, 1).Value = Left(s1, i)
r.Offset(0, 2).Value = Mid(s1, i + 1)
GoTo dun
End If
Next i
dun:
Next r
End Sub
最后一位数字右侧的所有内容都会放在 C 列中。其他所有内容都会放在 B
列中例如:
答案 1 :(得分:0)
假设您的值在A1中。 假设您在B1中创建一个辅助列。 C1列是左侧的公式。 D1列是右侧的公式。
在B1中,用保证文本不包含的字符替换所有数字,然后获取该字符的第一个实例的位置。在这里我选择了管道(" |")。 B1的公式:
=SEARCH("|",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, 1, "|"), 2, "|"), 3, "|"), 4, "|"), 5, "|"), 6, "|"), 7, "|"), 8, "|"), 9, "|"), 0, "|"))
C1的公式:
=IFERROR(LEFT(A1,B1- 1), A1)
D1的公式:
=IFERROR(MID(A1,B1, LEN( A1)-B1+1), "")
如果您选择不使用辅助列,您可以使用以下内容创建两个巨大的厄运公式:
左侧公式:
=IFERROR(LEFT(A1,SEARCH("|",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, 1, "|"), 2, "|"), 3, "|"), 4, "|"), 5, "|"), 6, "|"), 7, "|"), 8, "|"), 9, "|"), 0, "|"))- 1), A1)
右侧公式:
=IFERROR(MID(A1,SEARCH("|",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, 1, "|"), 2, "|"), 3, "|"), 4, "|"), 5, "|"), 6, "|"), 7, "|"), 8, "|"), 9, "|"), 0, "|")), LEN( A1)-SEARCH("|",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, 1, "|"), 2, "|"), 3, "|"), 4, "|"), 5, "|"), 6, "|"), 7, "|"), 8, "|"), 9, "|"), 0, "|"))+1), "")