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,都能够取出数字来做加减运算。
几位热心的网友的答案都好复杂呀!我只是结构,外观研发工程师.编程序好复杂呀!
有没有简单的方法呀?
注意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
试试用$这个符号把数字串起来,看看可以吗?