Excel表格中提取纯数字
推荐于2017-10-07 · 知道合伙人软件行家
举例:
最终达到的效果是提取单元格中有规律数据,左右两侧的数字和字符。如果实际数据和不同
数字和字符只出现一次,且都位于同侧。
直接展示公示结果,然后对其分析。第一行的公式为=LEFT(A1,2*LEN(A1)-LENB(A1))
分析,LEFT函数为取左边内容的函数, LEN是计算文本长度函数(数字汉字都按1计), LENB也是计算文本长度函数(数字按1计,汉字按2计)。通过这样的搭配可以得出正确结果。
为了便于理解,分开显示一下LEN、LENB函数计算结果。此处理方式在数学原理上是“鸡兔同笼”的数学应用。
LEN是计算文本长度函数(数字汉字都按1计), 对A1单元格“35米”计算结果为3
LENB也是计算文本长度函数(数字按1计,汉字按2计)。对A1单元格“35米”计算结果为4
数学思维:假如LEN计算的结果都是汉字,那么应该用LENB得出结果应该是3*2=6,而实际计算得出的是4,差额2说明单元格中有2个数字。因此2*LEN(A1)-LENB(A1)就是单元格中文本的个数。
由于本例数字都在左侧,因此我们使用=LEFT(A1,2*LEN(A1)-LENB(A1))含义为提取单元格左侧2个字符的功能完成要求。
注1:第九行使用的是RIGHT函数,思路相同。
注2:本例中数字字符之间如果出现半角的连接符或者空格也可以被提取出来。如/*-=+》;等 但是不能出现1234567890+-*/等类似的全角字符
注3:汉字中可以出现123+-*/等类似的全角字符
If 数字1字符2 = 1 Then
For i = 1 To Len(引用单元格)
If Val(Mid(引用单元格, i, 1)) > 0 Or Mid(引用单元格, i, 1) = "0" Or Mid(引用单元格, i, 1) = "." Then
字符数字分离 = 字符数字分离 & Mid(引用单元格, i, 1)
End If
Next i
ElseIf 数字1字符2 = 2 Then
For m = 1 To Len(引用单元格)
a = Application.WorksheetFunction.Substitute(引用单元格.Value, 0, "")
B = Application.WorksheetFunction.Substitute(a, 1, "")
c = Application.WorksheetFunction.Substitute(B, 2, "")
D = Application.WorksheetFunction.Substitute(c, 3, "")
E = Application.WorksheetFunction.Substitute(D, 4, "")
F = Application.WorksheetFunction.Substitute(E, 5, "")
G = Application.WorksheetFunction.Substitute(F, 6, "")
h = Application.WorksheetFunction.Substitute(G, 7, "")
i = Application.WorksheetFunction.Substitute(h, 8, "")
j = Application.WorksheetFunction.Substitute(i, 9, "")
Next m
字符数字分离 = j
End If
End Function
最方便,最快