
excel文本中怎么提取数字
如上图,一串文本中有数字,数字前后的字符单字节和双字节没有规律,要求从中提取出数字,这个我知道数字的起始位置很好确认,难就难在结束位置,因为有数字重复,所以用count统...
如上图,一串文本中有数字,数字前后的字符单字节和双字节没有规律,要求从中提取出数字,这个我知道数字的起始位置很好确认,难就难在结束位置,因为有数字重复,所以用count统计会漏掉重复的个数,请教各位大侠怎么做到准确的确定最后一个数字的位置,这才是重点,还请各位大侠给出公式之外稍做点解释。
展开
6个回答
展开全部
1、我们将要提取含有文字单元格内容复制到旁边的单元格中。
2、将其列宽调整到只能显示一个字符,如图所示。
3、在“编辑”菜单下选择“填充”下的“内容重排”。
4、选择旁边的空白单元格进行复制,再选择已经拆分的内容。右击在弹出的菜单里选择“选择性粘贴”。
5、在“选择性粘贴”窗口中选择“加”后确定,其实这一步是将文本数值转换成数字。
6、再选择拆分的内容,CTRL+G打开“定位”对话框。并点击下方的“定位条件”。
7、在“定位条件”窗口中选择“常量”并在其下方选择“文本”,最后确定。
8、这样就选择了所有的文本内容的单元格。
9、用CTRL+"-"快捷键,记住了是小键盘上的减号。在“删除”对话框中选择“下方单元格上移”。
10、这个就达到了快速提取含有文字单元格中的数字的目的。
展开全部
如果数字都在一起,没有被隔开,就好办
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW($1:$1024)))
或者自定义一个函数:
Function Num (Str As String) '在文本与数字混杂中提取数字
Dim myReg
Set myReg = CreateObject("vbscript.Regexp")
myReg.Global = True
myReg.Pattern = "[^\d/+]"
Num = myReg.Replace(Str, "")
Set myReg = Nothing
End Function
用的时候直接=Num(A1)
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW($1:$1024)))
或者自定义一个函数:
Function Num (Str As String) '在文本与数字混杂中提取数字
Dim myReg
Set myReg = CreateObject("vbscript.Regexp")
myReg.Global = True
myReg.Pattern = "[^\d/+]"
Num = myReg.Replace(Str, "")
Set myReg = Nothing
End Function
用的时候直接=Num(A1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在B2中输入或复制粘贴下列公式之一
=LOOKUP(9^9,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW($1:$100)))
=LOOKUP(9E+307,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW($1:$100)))
=LOOKUP(9^9,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
=LOOKUP(9E+307,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
按三键CTRL+SHIFT+ENTER结束公式输入
下拉填充
=LOOKUP(9^9,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW($1:$100)))
=LOOKUP(9E+307,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW($1:$100)))
=LOOKUP(9^9,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
=LOOKUP(9E+307,--MID(A1,MIN(FIND(ROW($1:$9)-1,A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
按三键CTRL+SHIFT+ENTER结束公式输入
下拉填充
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按ALT+F11,插入-模块,复制下列语句
Function SplitNumEng(str As String, sty As Byte)
Dim StrA As String
Dim StrB As String
Dim StrC As String
Dim i As Integer
Dim SigS As String
For i = 1 To Len(str)
SigS = Mid(str, i, 1)
If SigS Like "[a-zA-Z]" Then
StrA = StrA & SigS
ElseIf SigS Like "#" Then
StrB = StrB & SigS
Else
StrC = StrC & SigS
End If
Next i
Select Case sty
Case 1
SplitNumEng = StrA
Case 2
SplitNumEng = StrB
Case Else
SplitNumEng = StrC
End Select
End Function
比如你的数据在A1
B1输入 =SplitNumEng(A1,2) 公式下拉
Function SplitNumEng(str As String, sty As Byte)
Dim StrA As String
Dim StrB As String
Dim StrC As String
Dim i As Integer
Dim SigS As String
For i = 1 To Len(str)
SigS = Mid(str, i, 1)
If SigS Like "[a-zA-Z]" Then
StrA = StrA & SigS
ElseIf SigS Like "#" Then
StrB = StrB & SigS
Else
StrC = StrC & SigS
End If
Next i
Select Case sty
Case 1
SplitNumEng = StrA
Case 2
SplitNumEng = StrB
Case Else
SplitNumEng = StrC
End Select
End Function
比如你的数据在A1
B1输入 =SplitNumEng(A1,2) 公式下拉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如何把表格中的数字单独提取出来呢?用复制-粘贴就能搞定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询