当我们在使⽤Excel进⾏办公的时候,我们可能会遇到⼀些数据需要进⾏特殊提取的情况,下⾯⼩编就为你们介绍excel怎么提取数字。希望对你有帮助!
excel提取数字的办法
1、汉字在前,数字在后⾯的情形。可以⽤MID,min, find三个函数来实现提取⾥⾯的数字。如图:在B2输⼊“=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&\"0123456789\")),20)”
excel提取数字的步骤图1
2 、把单元格⾥⾯所有的数字都提出来。可以使⽤宏。先打开VBA编辑器。⼯具——宏——visualbasic 编辑器
excel提取数字的步骤图2
3、在编辑器⾥点击插⼊——模块。在模块那⾥输⼊如下代码: 复制内容到剪贴板
Function zzsz(xStr As String) As StringDim i As IntegerFor i = 1 To Len(xStr)If IsNumeric(Mid(xStr,i, 1)) Then zzsz = zzsz & Mid(xStr, i, 1)NextEnd Function
4、回到⼯作表,在B2单元格那⾥输⼊“=zzsz(A2)”。就可以⽤VBA把A2单元格⾥所有的数字都提取出来了,如图所⽰。
excel提取数字的步骤图3
5、指定从第⼏个数组提取开始。也就是说在不连续的那些数字中,从第⼏次出现的数组开始提取。同样在模块那⾥输⼊如下代码:
复制内容到剪贴板
Function GetNums(rCell As Range, num As Integer) As StringDim Arr1() As String, Arr2() AsStringDim chr As String, Str As StringDim i As Integer, j As IntegerOn Error GoTo line1
Str = rCell.TextFor i = 1 To Len(Str)chr = Mid(Str, i, 1)If (Asc(chr) < 48 Or Asc(chr) > 57) ThenStr =Replace(Str, chr, \" \")End IfNext
Arr1 = Split(Trim(Str))ReDim Arr2(UBound(Arr1))For i = 0 To UBound(Arr1)If Arr1(i) <> \"\"ThenArr2(j) = Arr1(i)j = j + 1End IfNext
GetNums = IIf(num <= j, Arr2(num - 1), \"\")line1:End Function
excel提取数字的步骤图4
6、在回到单元格那⾥输⼊“=Getnums(A3,2)”就可以提取第⼏次出现的数组了,如图所⽰。
excel提取数字的步骤图5
因篇幅问题不能全部显示,请点此查看更多更全内容