excel如何准确的提取文字中的数字

如何通过公式自动得出后面红框的数据?求高人指点下,谢谢
2024-10-30 09:33:45
推荐回答(4个)
回答(1):

自定义一个函数。用自定义的函数来提取数字

在通用窗口输入代码:

Function SumValueInText(TargetRange As Range) As Double

Dim mRegExp As RegExp

Dim mMatches As MatchCollection      '匹配字符串集合对象

Dim mMatch As Match        '匹配字符串

Set mRegExp = New RegExp

With mRegExp

.Global = True                              'True表示匹配所有, False表示仅匹配第一个符合项

.IgnoreCase = True                          'True表示不区分大小写, False表示区分大小写

.Pattern = "([0-9])?[.]([0-9])+|([0-9])+"   '匹配字符模式

Set mMatches = .Execute(TargetRange.Text)   '执行正则查找,返回所有匹配结果的集合,若未找到,则为空

For Each mMatch In mMatches

SumValueInText = SumValueInText + CDbl(mMatch.Value)

Next

End With

Set mRegExp = Nothing

Set mMatches = Nothing

End Function

网页链接

回答(2):

第一步:选中区域单击复制将数字列调整至1个汉字的宽度。
第二步:选中第一排字,单击编辑——填充——两端对齐。
第三步:转化为数字,全部选中单击数据——分裂——单击完成这样就可以转化为数字。
第四步:全部选中,按F5定位条件,选择公式——文本-单击确定。
第五步:在全部选中右键单击删除,选择下方单元格上移,这样就可以把数字提取出来。
6第六步:单击文件另存为(格式自选)。

回答(3):

B2输入=LEFT(A2,FIND("日",A2))向下填充。c2输入=MID($A2,FIND(C$1,$A2)+4,3)向右填充。再把DE列公式改为=MID($A2,FIND(C$1,$A2)+4,1),四列一起向下填充,这样有一个小问题还要处理一下,就是2位数,会出现99人这样情况,你可以用查找替换来处理。

回答(4):

B2输入:=LEFT(A2,FIND("原",A2)-1)
C2输入:=MID(A2,FIND("#",SUBSTITUTE(A2,"次","#",1))+1,FIND("#",SUBSTITUTE(A2,"人","#",2))-FIND("#",SUBSTITUTE(A2,"次","#",1))-1)
D2输入:=MID(A2,FIND("#",SUBSTITUTE(A2,"次","#",2))+1,FIND("#",SUBSTITUTE(A2,"人","#",4))-FIND("#",SUBSTITUTE(A2,"次","#",2))-1)
E2输入:=MID(A2,FIND("#",SUBSTITUTE(A2,"次","#",3))+1,FIND("#",SUBSTITUTE(A2,"人","#",6))-FIND("#",SUBSTITUTE(A2,"次","#",3))-1)
F2输入:=MID(A2,FIND("#",SUBSTITUTE(A2,"次","#",4))+1,FIND("#",SUBSTITUTE(A2,"人","#",8))-FIND("#",SUBSTITUTE(A2,"次","#",4))-1) 然后下拉填充