请教EXCEL函数达人:如何提取字符串中的数字。

2024-12-17 01:55:59
推荐回答(5个)
回答1:

可选用以下方法提取:
1、给出数字的起始位置和长度。示例公式:=--mid(a1,5,3) 公式结果为提取A1单元格中从第5位开始的3个数字。
2、提取某特定字符串后的数字。示例公式:=-lookup(0,-mid(a1,find("ABC",a1)+LEN("ABC"),row(1:99))) 公式结果为提取A1单元格中字符串ABC之后的数字。
3、数字在一侧其他则中文字符组成。示例公式:数字在前,公式=left(a1,2*len(a1)-lenb(a1));数字在后,公式=right(a1,2*len(a1)-lenb(a1))
4、没有给出任何条件,只要求将单元格中的数字提出。通用公式=-lookup(0,-mid(a1,min(find(row(1:10)-1,a1&1/17)),row(1:99))) 按组合键ctrl+shift+enter结束公式。

回答2:

'################################################################

'从字符串提取纯数字

' 示 例:字符串:01AB2%中98国10CDE63

' 1、提取不重复数字并从小到大排列:0123689

' 2、提取不重复数字并从大到小排列:9863210

' 3、按出现顺序取出所有数字:012981063

'################################################################

Function SortNumber_1(mystring As String) As String

Dim i As Integer

Dim Str As String

For i = 0 To 9

If InStr(1, mystring, i) > 0 Then

Str = Str & i

End If

Next

SortNumber_1 = Str

End Function

Function SortNumber_2(mystring As String) As Double

Dim i As Integer

Dim Str As String

For i = 9 To 0 Step -1

If InStr(1, mystring, i) > 0 Then

Str = Str & i

End If

Next

SortNumber_2 = Str

End Function

Function GetNumber(mystring As String) As String

Dim i As Integer

Dim Str As String

For i = 1 To Len(mystring)

If IsNumeric(Mid(mystring, i, 1)) Then

Str = Str & Mid(mystring, i, 1)

End If

Next

GetNumber = Str

End Function

回答3:

如果字符串中只有汉字和数字,可以用这个公式,如果数据在A1中,提取公式为
=MIDB(A1,SEARCHB("?",A1),2*LEN(A1)-LENB(A1))

回答4:

可以,先用find 函数找到与查找字符的位置,再用LEFT函数提取出来。

回答5:

假如数据在A列,从A1开始
B1=LOOKUP(9^9,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&5^19)),ROW($1:$99)))
鼠标放在B1右下角,变成十字后下拉。