Excel中,怎么从复杂字符中抽取数字

来源:百度知道 编辑:UC知道 时间:2024/05/10 19:45:54
请问如果我要实现A3=A2-A1是自动的(我输入完A1和A2,自动出A3结果),怎么在A3里写公式?

注意A1里有些是有特殊字符Φ的,就是要显示无论是数字还是前面带了特殊字符都能实现这个功能。

谢谢

A1 A2 A3

Φ3.00 2.950 -0.05

3.00 3.020 0.02

40.00 39.988 -0.012

Φ40.00 39.976 -0.024

161.00 160.950 -0.05
我知道通过某些方法能取出数字来,比如Mid(A1,2,10)。但我要的是一劳永逸的。就是说无论A1,A2变成都复杂的字符数字¥12.3,HL56.3,*52.3,都能够取出数字来做加减运算。

几位热心的网友的答案都好复杂呀!我只是结构,外观研发工程师.编程序好复杂呀!
有没有简单的方法呀?

如果只有Φ这个字符。
A3=A2-SUBSTITUTE(A1,"Φ","")

不同的情况需要采取不同的对策。
如果总是字符在前数字在后,且字符(包括汉字)的个数不定,可用公式:
=A2-LOOKUP(9E+307,--RIGHT(A1,ROW(INDIRECT("1:"&LEN(A1)))))
如果数字的前后都的字符。可用公式:
=A2-=LOOKUP(9E+307,--MID(A1,MIN(FIND(TRANSPOSE(ROW($1:$10)-1),A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
是数组公式,按Ctrl+Shift+Enter结束公式的输入。
如果数字中间也有字符,呵呵,我没办法了。

一个是字符,一个是数字,两者类型不同,不能相减的。

简单点就是"编辑-查找",选择"替换",在"查找内容"中输入Φ,再按下"全部替换",然后就可以计算了

按下ALT+F11,插入-模块,复制下面代码.
在A3输入=A2-CAL(A1)

CAL可以作为提取单元格数字的函数.

Public Function CAL(ByVal N As String) As String
Dim SUM As String
SUM = ""
For X = 1 To Len(N)
If Asc(Mid(N, X, 1)) = 46 Or Asc(Mid(N, X, 1)) >= 48 And Asc(Mid(N, X, 1)) <= 57 Then
SUM = SUM & Mid(N, X, 1)
End If
Next
CAL = SUM
End Function

试试用$这个符号把数字串起来,看看可以吗?