要怎样在EXCEL中去掉前后的文字,只保留数字

例:昆明XX278.34吨工业盐酸运费发票入账
结XXXX交通集团PVC9930吨运费
请教高手,我只想保留数字,要怎么处理

1、首先我们打开excel办公软件,通过指定内容作为样例进行使用。

2、在开始菜单中默认选择开始选项,其中选择智能工具箱。

3、首先我们选中要处理的单元格区域。

4、然后选择工具栏中单元格处理,在下拉三角中选择保留内容。

5、弹出批量提取窗口,其中提取类型选择数字,因为上面我们提到中文和数字混合只保留数字,勾选数字并确定。

6、最后我们来查看批量提取效果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-02

B1=-LOOKUP(1,-RIGHT(LEFT(A1,LOOKUP(1,-MID(A1,ROW($1:$99),1),ROW($1:$99))),ROW($1:$99)))

公式下拉。

公式解析:

LOOKUP(1,-MID(A1,ROW($1:$99),1),ROW($1:$99))返回最后一位数字的位置,再LEFT取出左边的数据“"昆明XX278.34",再用LOOKUP函数从这个字符串的右边依次取数,最大值就是结果。

第2个回答  2013-04-08

我对比了无知和JJ的公式,无知的公式应该很好。我写不好这样的公式。

只是不知道楼主要什么结果,无知的公式如果对中间有两组数据的只能提取第一组数据。

而我写的程序可以全部提取。不知道哪种要求符合楼主的要求,

我截了一个图对比。JJ的公式在第3行有错。



假设你的数据在A列,数字保存在B列。用VBA编程实现

ALT+F11——F7——粘贴如下代码——F5运行

Sub mysub()

Dim i As Integer, j As Integer

Dim str As String

For i = 1 To [a65536].End(xlUp).Row

    str = ""

    For j = 1 To Len(Range("a" & i))

        If Mid(Range("a" & i), j, 1) Like "[0-9]" Or Mid(Range("a" & i), j, 1) = "." Then

           str = str & Mid(Range("a" & i), j, 1)

        End If

    Next j

    Range("b" & i) = str

Next i

End Sub



Sub mysub()
Dim i As Integer, j As Integer
Dim str As String
For i = 1 To [a65536].End(xlUp).Row
str = ""
For j = 1 To Len(Range("a" & i))
If Mid(Range("a" & i), j, 1) Like "[0-9]" Or Mid(Range("a" & i), j, 1) = "." Then
str = str & Mid(Range("a" & i), j, 1)
End If
Next j
Range("b" & i) = str
Next i
End Sub

第3个回答  2013-04-08
假设数据在A1,在B1输入:
=LOOKUP(9E+307,--LEFT(MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),len(A1)),ROW(INDIRECT("1:"&LEN(A1))))
下拉填充
第4个回答  2013-04-08
假定原数据在A列从A1开始
=MAX(IF(ISNUMBER(1*MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),TRANSPOSE(ROW(INDIRECT("$1:$"&LEN(A1)))))),1*MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),TRANSPOSE(ROW(INDIRECT("$1:$"&LEN(A1))))),0))
按组合键ctrl+shift+enter结束公式输入,下拉填充