2020-08-28 16:04:25Excel媛媛
在我们制作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)”
2 、把单元格里面所有的数字都提出来。可以使用宏。先打开VBA编辑器。工具——宏——visual basic 编辑器
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单元格里所有的数字都提取出来了,如图所示。
5、指定从第几个数组提取开始。也就是说在不连续的那些数字中,从第几次出现的数组开始提取。同样在模块那里输入如下代码:
复制内容到剪贴板
Function GetNums(rCell As Range, num As Integer) As StringDim Arr1() As String, Arr2() As StringDim 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
6、在回到单元格那里输入“=Getnums(A3,2)”就可以提取第几次出现的数组了,如图所示。
1、打bai开需要编辑的Excel表格。
2、如du需提取A栏数字左边前两zhi位,在B1栏输入=left(A1,2),“left”表示需要从左边提取数字,“A1”表示你要提取的数字栏,“2”表示你要提取的数字位数,之后按Enter即可。
3、编辑成功后需要提取A栏的数字,只需点击B1格,右下角会出现一个实心的黑点,左键点击黑点向下拖即可。
4、如需提取A栏数字右边后5位,在B1栏输入=right(A1,5),“right”表示需要从右边提取数字,“A1”表示你要提取的数字栏,“5”表示你要提取的数字位数,之后回车,点击B1下拖即可。
5、如需提取A栏数字从左第4位开始的中间2位,在B1栏输入=mid(A1,4,2),“mid”表示需要提取中间数字,“A1”表示你要提取的数字栏,“4”表示从第4位开始提取,“2”表示你需要提取两位数字,之后回车,点击B1下拖即可。
6、果提取身份证号码里的出生日期,可在B2栏输入=mid(A2,7,4)&"年"&mid(A2,11,2)&"月"&mid(A2,13,2)&"日" ,&"年"即在数据后添加年,其余同理,回车下拉即可。
以上便是‘excel怎么提取单元格中的数字 excel如何提取数字前几位’的全部内容了,希望可以为大家带来帮助,如果你还想了解更多关于excel表格的使用技巧,可以进入教程之家网了解一下。
2020-08-28
2020-08-01
2020-08-24
2020-08-26
2020-09-26
2020-08-27