用自定义函数提取单元格内字符串中的数字.doc

用自定义函数提取单元格内字符串中的数字.doc

ID:55167845

大小:24.50 KB

页数:4页

时间:2020-04-30

用自定义函数提取单元格内字符串中的数字.doc_第1页
用自定义函数提取单元格内字符串中的数字.doc_第2页
用自定义函数提取单元格内字符串中的数字.doc_第3页
用自定义函数提取单元格内字符串中的数字.doc_第4页
资源描述:

《用自定义函数提取单元格内字符串中的数字.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用自定义函数提取单元格内字符串中的数字  如果Excel单元格中包含一个混合文本和数字的字符串,要提取其中的数字,通常可以用下面的公式,例如字符串“隆平高科000998”在A1单元格中,在B1中输入数组公式:  =MID(A1,MATCH(1,--ISNUMBER(--MID(A1,ROW(INDIRECT(“1:”&LEN(A1))),1)),0),COUNT(--MID(A1,ROW(INDIRECT(“1:”&LEN(A1))),1)))  公式输入完毕按Ctrl+Shift+Enter结束,公式返回文本形式的数值“000998”。下面

2、的公式也可以提取字符串中的数值,并返回数值形式:  =LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT(“1:”&LEN(A1)))))  公式返回“998”。  上述两个公式适合于字符串中包含连续数字的情况。但有时字符串中可能包含多个被文本分隔的数字,如“世纪家园31栋3单元901室”中就包含了3个数值,用上面的第二个公式只能返回第一个数值“31”,而第一个公式不能得到正确的结果。要分别提取字符串中的各个数值,可以用下面的自定

3、义函数。  在Excel中按Alt+F11,打开VBA编辑器。单击菜单“插入→模块”,在代码窗口中输入下列代码:  FunctionGetNums(rCellAsRange,numAsInteger)AsStringDimArr1()AsString,Arr2()AsStringDimchrAsString,StrAsStringDimiAsInteger,jAsIntegerOnErrorGoToline1Str=Fori=1ToLen(Str)  chr=Mid(Str,i,1)  If(Asc(chr)57)Then  Str=Repl

4、ace(Str,chr,““)  EndIfNextArr1=Split(Trim(Str))ReDimArr2(UBound(Arr1))Fori=0ToUBound(Arr1)IfArr1(i)““Then  Arr2(j)=Arr1(i)  j=j+1EndIfNextGetNums=IIf(num<=j,Arr2(num-1),““)line1:EndFunction  该自定义函数定义了两个参数,第一个参数指定字符串所在的单元格,第二个参数指定提取字符串中的第几个数值。如果字符串中仅包含2个数值,而第二个参数大于2,则函数会返回空。

5、  返回Excel工作表界面。假如上述字符串在A2单元格中,在B2中输入:  =Getnums(A2,1)  公式将以文本形式返回字符串中的第一个数值。要得到字符串中的第N个数值,将公式中的第二个参数“1”替换为N即可,如下图D2中的公式:  =Getnums(A2,3)  返回“901”。  说明:该自定义函数在处理小数形式的数值时,将小数点“.”也视为字符,因而对于小数可分别提取小数的整数部分和小数部分。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。