Excel 中用什么函数能提取字符串中的数字
发布时间:2025-05-14 01:24:34 发布人:远客网络
一、Excel 中用什么函数能提取字符串中的数字
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结束公式。
二、excel单元格内怎样提取字符串中的数字
1、根据数字所在单元格文本字符串位置的不同,可以使用MID函数或MIDB函数、RIGHT函数或RIGHTB函数、LEFT函数或LEFTB函数来进行提取。
2、MID或MIDB用途:MID返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。MIDB函数可以用于双字节字符。
3、语法:MID(text,start_num, num_chars)或MIDB(text, start_num,num_bytes)。
4、参数:Text是包含要提取字符的文本串。Start_num是文本中要提取的第一个字符的位置,文本中第一个字符的start_num为1,以此类推;Num_chars指定希望MID从文本中返回字符的个数;Num_bytes指定希望MIDB从文本中按字节返回字符的个数。
5、实例:如果a1=电子计算机,则公式“=MID(A1,3,2)”返回“计算”,=MIDB(A1,3,2)返回“子”。
6、RIGHT或RIGHTB用途:RIGHT根据所指定的字符数返回文本串中最后一个或多个字符。RIGHTB根据所指定的字节数返回文本串中最后一个或多个字符。
7、语法:RIGHT(text,num_chars),RIGHTB(text,num_bytes)。
8、参数:Text是包含要提取字符的文本串;Num_chars指定希望RIGHT提取的字符数,它必须大于或等于0。如果num_chars大于文本长度,则RIGHT返回所有文本。如果忽略num_chars,则假定其为1。Num_bytes指定欲提取字符的字节数。
9、实例:如果A1=学习的革命,则公式“=RIGHT(A1,2)”返回“革命”,=RIGHTB(A1,2)返回“命”。
10、LEFT或LEFTB用途:根据指定的字符数返回文本串中的第一个或前几个字符。此函数用于双字节字符。
11、语法:LEFT(text,num_chars)或LEFTB(text, num_bytes)。
12、参数:Text是包含要提取字符的文本串;Num_chars指定函数要提取的字符数,它必须大于或等于0。Num_bytes按字节数指定由LEFTB提取的字符数。
13、实例:如果A1=电脑爱好者,则LEFT(A1,2)返回“电脑”,LEFTB(A1,2)返回“电”。
三、excel用自定义函数提取单元格内字符串中的数字
1、如果Excel单元格中包含一个混合文本和数字的字符串,要提取其中的数字,通常可以用下面的公式,例如字符串“隆平高科000998”在A1单元格中,在B1中输入数组公式:
2、=MID(A1,MATCH(1,–ISNUMBER(–MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),0),COUNT(–MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)))
3、公式输入完毕按Ctrl+Shift+Enter结束,公式返回文本形式的数值“000998”。下面的公式也可以提取字符串中的数值,并返回数值形式:
4、=LOOKUP(9E+307,–MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))
5、上述两个公式适合于字符串中包含连续数字的情况。但有时字符串中可能包含多个被文本分隔的数字,如“世纪家园31栋3单元901室”中就包含了3个数值,用上面的第二个公式只能返回第一个数值“31”,而第一个公式不能得到正确的结果。要分别提取字符串中的各个数值,可以用下面的自定义函数。
6、在Excel中按Alt+F11,打开VBA编辑器。单击菜单“插入→模块”,在代码窗口中输入下列代码:
7、Function GetNums(rCell As Range, num As Integer) As String
8、Dim Arr1() As String, Arr2() As String
9、Dim chr As String, Str As String
10、Dim i As Integer, j As Integer
11、If(Asc(chr) 48 Or Asc(chr)> 57) Then
12、GetNums= IIf(num<= j, Arr2(num– 1),"")
13、该自定义函数定义了两个参数,第一个参数指定字符串所在的单元格,第二个参数指定提取字符串中的第几个数值。如果字符串中仅包含2个数值,而第二个参数大于2,则函数会返回空。
14、返回Excel工作表界面。假如上述字符串在A2单元格中,在B2中输入:
15、公式将以文本形式返回字符串中的第一个数值。要得到字符串中的第N个数值,将公式中的第二个参数“1”替换为N即可,如下图D2中的公式:
16、说明:该自定义函数在处理小数形式的数值时,将小数点“.”也视为字符,因而对于小数可分别提取小数的整数部分和小数部分