数组公式
先输入 = 号
粘贴下面公式
SUM(INDEX(MID(A1,ROW($1:$30),1),N(IF({1},LARGE(IF(ISNUMBER(--MID(A1,ROW($1:$30),1)),ROW($1:$30),),ROW($1:$3)))))*10^(ROW($1:$3)-1))
粘贴后不要按回车, 同时按 Ctrl+shift+回车 三键结束, 切记此步!!! 否则结果不正确
如果下面还有数据, 下拉
【如果保留其它字符, 而且又不确定数字会在哪个位置出现, 及出现个数是多少, 那公式几乎做不到了】
写了一个自定义函数试一下效果:
Public Function yy(txt) As String
Dim i, s, m As Integer, aa As String
aa = ""
s = 0
m = 0
For i = 1 To Len(txt)
If Asc(Mid(txt, i, 1)) >= Asc("0") And Asc(Mid(txt, i, 1)) <= Asc("9") Then
s = s + 1
End If
Next
For i = 1 To Len(txt)
If Asc(Mid(txt, i, 1)) >= Asc("0") And Asc(Mid(txt, i, 1)) <= Asc("9") Then
m = m + 1
End If
If m <= s - 3 Then
If (Asc(Mid(txt, i, 1)) >= 65 And Asc(Mid(txt, i, 1)) <= 90) Or (Asc(Mid(txt, i, 1)) >= 97 And Asc(Mid(txt, i, 1)) <= 122) Then
aa = aa & Mid(txt, i, 1)
End If
Else
aa = aa & Mid(txt, i, 1)
End If
Next
yy = aa
End Function
使用方法:
按 ALT+F11, 打开VBA编辑器, 在菜单栏点选"插入>模块", 将上面代码粘贴到下面.
回到EXCEL表格, 在B 输入
=yy(a1)
如下面还有数据, 可以下拉
效果如图
不是这个意思
如A1中:yoeyworwo12376543yiueiu452df中,删12376543,留452(三位以下)
如A2中:dgffgsgorwo4354326543yiueiu787df中,删4354326543,留787(三位以下)
不是固定的数字,谢谢!
如果你要删除的数字段无论多长只要数字两段 有固定的字符 可以用通配符去换为什么都没有,你举的两个例子我发现有这样的规律查找wo*yiu 在替换里什么都没有。如果没有任何规律 你只有一个个换。通配符就是小键盘的乘号键 ,是全角输入。最好用微软的拼音输入法,我所知道的在系统7与8下紫光拼音不行。