您的位置: 首页 > Office技巧 > excel技巧

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

时间:2013-12-13 整理:docExcel.net

[excel如何快速提取手机号后4位数字]有时在表格数据中需要提取手机号后4位数字另作他用,如何快速提取呢?一起来了解一下吧...+阅读

如果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”。下面的公式也可以提取字符串中的数值,并返回数值形式:

=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”,而第一个公式不能得到正确的结果。要分别提取字符串中的各个数值,可以用下面的自定义函数。

在Excel中按Alt+F11,打开VBA编辑器。单击菜单“插入→模块”,在代码窗口中输入下列代码:

Function GetNums(rCell As Range, num As Integer) As String

Dim Arr1() As String, Arr2() As String

Dim chr As String, Str As String

Dim i As Integer, j As Integer

On Error GoTo line1

Str = rCell.Text

For i = 1 To Len(Str)

chr = Mid(Str, i, 1)

If (Asc(chr) < 48 Or Asc(chr) > 57) Then

Str = Replace(Str, chr, " ")

End If

Next

Arr1 = Split(Trim(Str))

ReDim Arr2(UBound(Arr1))

For i = 0 To UBound(Arr1)

If Arr1(i) <> "" Then

Arr2(j) = Arr1(i)

j = j + 1

End If

Next

GetNums = IIf(num <= j, Arr2(num - 1), "")

line1:

End Function

该自定义函数定义了两个参数,第一个参数指定字符串所在的单元格,第二个参数指定提取字符串中的第几个数值。如果字符串中仅包含2个数值,而第二个参数大于2,则函数会返回空。

返回Excel工作表界面。假如上述字符串在A2单元格中,在B2中输入:

=Getnums(A2,1)

公式将以文本形式返回字符串中的第一个数值。要得到字符串中的第N个数值,将公式中的第二个参数“1”替换为N即可,如下图D2中的公式:

=Getnums(A2,3)

返回“901”。

说明:该自定义函数在处理小数形式的数值时,将小数点“.”也视为字符,因而对于小数可分别提取小数的整数部分和小数部分。

本文地址:https://www.docexcel.net/show/3_3759.html

以下为关联文档:

vlookup函数怎么使用VLookup函数是Excel中的一个纵向查找函数,功能是按列查找,特别是对于多表格查找比较实用,那么,VLookup函数的使用方法是怎样的呢?接下来给大家总结了VLookup函数的使用方法及实例...

Excel怎么提取单元格中的数字怎么一键提取excel单元格内的数字呢?单元格内有数字还有文字,一个个编辑太影响工作效率,那么Excel怎么提取单元格中的数字?这篇文章主要介绍了Excel提取单元格中部分数字的方法,...

怎么提取Excel单元格中的部分内容文字放在一个单元格了,怎么批量提取Excel单元格中的部分内容呢?这篇文章主要介绍了Excel批量提取单元格中部分内容的方法,需要的朋友可以参考下...

excel函数公式大全 excel最常用的八个函数的使用方法这篇文章主要介绍了excel函数公式大全 excel最常用的八个函数的使用方法的相关资料,需要的朋友可以参考下本文详细内容介绍...

10种excel多条件查找函数的使用方法汇总这篇文章主要介绍了10种excel多条件查找函数的使用方法汇总的相关资料,需要的朋友可以参考下本文详细内容介绍...

excel表格常用函数技巧大全办公免不了要做资料算量,Excel是工作中最常用的工具之一。只要搞清楚它的一些使用小技巧,工作效率那是嗖嗖的往上蹭啊。下面这些,你就绝对不能错过...

excel如何不用函数去掉数字中的小数在利用excel表格时,我们经常会写大量的数据,对于一些小数点及后边的数字而言,想要删除是一项很大的工程,因为数据比较多,很麻烦,我们可以快速删除小数点后边的数字,下面简单说下方...

excel数字如何用函数四舍五入在excel众多函数中,四舍五入函数是使用率比较高的一种函数,所以掌握四舍五入函数很有必要。今天,小编详细讲解一下excel四舍五入函数的用法...

excel用函数怎么统计数字出现次数表格中统计需要的数字是很常见的操作,例如统计一列中出现某个数字的次数,用函数怎么操作的呢...

相关推荐: