自定义一个函数。用自定义的函数来提取数字
在通用窗口输入代码:
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
网页链接
第一步:选中区域单击复制将数字列调整至1个汉字的宽度。
第二步:选中第一排字,单击编辑——填充——两端对齐。
第三步:转化为数字,全部选中单击数据——分裂——单击完成这样就可以转化为数字。
第四步:全部选中,按F5定位条件,选择公式——文本-单击确定。
第五步:在全部选中右键单击删除,选择下方单元格上移,这样就可以把数字提取出来。
6第六步:单击文件另存为(格式自选)。
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人这样情况,你可以用查找替换来处理。
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) 然后下拉填充