Excel一个单元格中有字母,符号,文字,,,只提取数字

Excel一个单元格中有字母,符号,文字,,,只提取数字数字被符合和文字分成了几段,位置和数量都不一样,,,

教你一个方法,虽然步骤繁琐点,但能解决问题,而且不麻烦
先把Excel中的数据,复制到word中
然后打开查找替换界面
在下面选择“使用通配符”
查找中输入[!0-9]
然后点击全部替换
然后把数据复制回Excel中,就实现了你的要求。

当然可以利用VBA写自定义函数,这个就有点小复杂了追问

VBA自定义函数,怎么定义啊老师

追答

Alt+F11
在左上角空白处,点击右键,插入模块
插入如下代码:
Function 数(x As Range)
For i = 1 To Len(x)
If Asc(Mid(x, i, 1)) 47 Then
数 = 数 & Mid(x, i, 1)
End If
Next
End Function
回到Excel中,使用公式
=数(A1)即可

追问

谢谢老师

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-22
B2单元格输入下面的公式: =MID(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")),2*LEN(A2)-LENB(A2)
此公式只针对中文+数字适用,且数字只能一段,不能多段。。。
FUQIN电话114551 114551

120119115FUQIN电话 120119115FUQIN

父亲110114母亲10086 110114母亲100

耗子药998一包50克 998一包

耗子药998一包 998

FUQIN120119114电话 120119114电话

FUQIN电话120119114 120119114

HAOZIYAO998YIBAO 998YIBAO
第2个回答  2019-05-06
亲,如下图,b1的公式是数组公式。在单元格中粘贴完成以后,不要直接按回车退出,一定要按“ctrl+shift+回车”退出。然后下拉公式。
=right(a1,min(if((code(left(right(a1,row($1:$100)),1))>=65)*(code(left(right(a1,row($1:$100)),1))<=90)+(code(left(right(a1,row($1:$100)),1))=45),row($1:$100)))-1)
相似回答