excel中取出字符串中的数字

合集下载

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

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

用自定义函数提取单元格内字符串中的数字如果Excel单元格中包含一个混合文本和数字的字符串,要提取其中的数字,通常可以用下面的公式,例如字符串“隆平高科000998”在A1单元格中,在B1中输入数组公式:=MID(A1,MA TCH(1,--ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),0),COU NT(--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(INDI RECT("1:"&LEN(A1)))))公式返回“998”。

上述两个公式适合于字符串中包含连续数字的情况。

但有时字符串中可能包含多个被文本分隔的数字,如“世纪家园31栋3单元901室”中就包含了3个数值,用上面的第二个公式只能返回第一个数值“31”,而第一个公式不能得到正确的结果。

要分别提取字符串中的各个数值,可以用下面的自定义函数。

在Excel中按Alt+F11,打开VBA编辑器。

单击菜单“插入→模块”,在代码窗口中输入下列代码:Function GetNums(rCell As Range, num As Integer) AsStringDim Arr1() As String, Arr2()As StringDim chr As String, Str AsStringDim i As Integer, j AsIntegerOn Error GoTo line1Str = rCell.TextFor i = 1 To Len(Str)chr = Mid(Str, i, 1)If (Asc(chr) < 48 Or Asc(chr) > 57) ThenStr = Replace(Str, chr, " ")End IfNextArr1 = Split(Trim(Str))ReDim Arr2(UBound(Arr1))For i = 0 ToUBound(Arr1)If Arr1(i) <> ""ThenArr2(j) = Arr1(i)j = j + 1End IfNextGetNums = IIf(num <= j,Arr2(num - 1), "")line1:End Function该自定义函数定义了两个参数,第一个参数指定字符串所在的单元格,第二个参数指定提取字符串中的第几个数值。

Excel字符串中提取数据,学会这3个方法,告别加班薪资倍增!

Excel字符串中提取数据,学会这3个方法,告别加班薪资倍增!

Excel字符串中提取数据,学会这3个方法,告别加班薪资倍增!老板发给你一份表格,要你把表格中的文字提取出来,你一看,这多简单啊,一个一个敲出来也就两三分钟的事情,但是等统计完数字之后,几分钟后才发现打错了个数字。

这要是数据多的话,岂不是更麻烦!为了防止这种情况发生,而且数据不止这么少的情况下,下面教你3种方法:可以精准无错提取文字!学会这3个方法,告别加班薪资倍增!方法一:Ctrl+E快速提取具体操作步骤如下:1、在B2单元格中输入200 -- 选中B2:B10单元格-- 按快捷键“Ctrl+E”完成。

2、动图演示如下。

方法二:借用Word来完成具体操作步骤如下:1、在Excel中选中A2:A10单元格并复制 -- 打开Word并粘贴。

2、按快捷键“Ctrl+H”打开“查找和替换”对话框-- 在“查找内容”后面的输入框中输入“[!-0-9]”-- “替换为”为空 -- 点击“更多”按钮-- 将“使用通配符”前面的复选框勾选上 -- 点击“全部替换”按钮。

3、将替换完成后的数据复制并粘贴到Excel表格相应的位置即可。

4、完整的动图演示如下。

方法三、使用SEARCHB函数和MIDB函数具体操作步骤如下:1、选中B2:B10单元格-- 在编辑栏中输入公式“=-LOOKUP(,-MIDB(A2,SEARCHB('?',A2),ROW($1:$30)))”-- 按快捷键“Ctrl+Enter”即可。

公式解读:MIDB函数:根据您指定的字节数,返回文本字符串中从指定位置开始的特定数目的字符。

SEARCHB函数:返回一个指定字符或文本字符串在字符串中第一次出现的位置,从左到右查找,忽略大小写。

SEARCHB('?',A2):?是一个单字节,找到A2单元格中单字节第一次出现的位置,即数字第一次出现的位置!汉字、中文标点符号为2个字节。

数字为1个字节。

2、完整的动图演示如下。

著作权归作者所有。

提取Excel字符串中的数字

提取Excel字符串中的数字

提取Excel字符串中的数字
在处理账务中,一般单位名称是放在表格的右上角,但有时单位是不固定的,比较有时是吨,有时是件,有时是箱,这时单位就不便放在表格上面,因为这样不能反应真实的信息,而如果把这些单位直接输入到表格中,在计算时会就遇到问题,我的解决方法是,把这些单位也输入,在计算时把字符串的数字提出来。

用VBA实现:
实现环境:Excel2003,Windows XP。

打开Excel,按ALT+F11,打开Visual Basic编辑器,双击VBAProject,双击模块,再双击模块,如下图所示:
输入如下代码:
Function AtoN(Str As String)
If IsNumeric(Str) Then
AtoN = Str
Else
For i = Len(Trim(Str)) To 1 Step -1
a = Mid(Str, i, 1)
If a = "." Then n = a + n
If IsNumeric(a) Then
n = a + n
Else
i = i
End If
Next i
AtoN = n
End If
End Function
关闭Visual Basic编辑器,点击地址栏上的插入函数按钮,在类型列表里选择用户定义,这里就会显示刚才定义的函数。

如下图所示:
测试:。

Excel 公式:从文本中提取数字

Excel 公式:从文本中提取数字

大家好啊,今天和大家分享 3 个从文本中提取数字的公式。

首先看一下实例图片,在一串文本中,数字有可能在文本的开始处、结尾处或中间。

现在针对这三种情况,给出三种提取数字公式。

数字在文本开始处这种情况提取数字相对简单些,以下是通用公式:=-LOOKUP(0,-LEFT(要提取数字的单元格,ROW($1:$15)))公式中,部分数字 15 表示想要提取的数字的最长长度,可以根据实际需求调整。

本例中,实际的公式如下:=-LOOKUP(0,-LEFT(B3,ROW($1:$15))数字在文本结尾处类似上一公式,这种情况的通用公式:=-LOOKUP(0,-RIGHT(要提取数字的单元格,ROW($1:$15)))公式中,部分数字 15 表示想要提取的数字的最长长度,可以根据实际需求调整。

本例中,实际的公式如下:=-LOOKUP(0,-RIGHT(B3,ROW($1:$15)))数字在文本中间这种情况相对复杂些,但是思路是一致的,以下是通用公式:=-LOOKUP(1,-RIGHT(LEFT(要提取数字的单元格,LOOKUP(10,--MID(要提取数字的单元格,ROW($1:$20),1),ROW($1:$18))),ROW($1:$20)))公式中,部分数字 20 表示想要提取的数字的单元格长度,可以根据实际需求调整。

本例中,实际的公式如下:=-LOOKUP(1,-RIGHT(LEFT(B3,LOOKUP(10,--MID(B3,ROW($1:$20),1),ROW($1:$20))),ROW($1:$20)))通用公式大家可能已经思考了,第三个公式适用于前两种情况吗?答案是“肯定适用!”。

开始和结尾都是特殊的中间情况。

但是如果明确数字在开始处或结尾处,使用对应的公式会更简洁一些。

excel中从字符串中间取数至末尾的方法

excel中从字符串中间取数至末尾的方法

在使用Excel进行数据处理时,我们经常会遇到需要从字符串中间取数至末尾的情况。

这种情况可能出现在需要处理文本数据、提取特定信息等情况下。

下面将介绍在Excel中从字符串中间取数至末尾的几种常见方法。

1. 使用MID函数MID函数可以从文本字符串中提取指定位置开始的指定个数的字符。

其基本语法为:=MID(文本,起始位置,长度),其中文本为要提取的文本字符串,起始位置为开始提取的位置,长度为要提取的字符个数。

我们有一个包含日期和时间的字符串"xxx",需要取出时间部分(12:30)。

这时可以使用MID函数来完成:=MID("xxx",9,4),即从第9个字符开始提取4个字符,得到的结果就是"1230"。

2. 使用FIND函数结合MID函数有时候我们需要从字符串中按照某个特定字符的位置来提取数据,这时可以结合使用FIND函数和MID函数来实现。

FIND函数可以用来返回某个文本字符串在另一个字符串中的位置。

我们有一个包含电流新箱位置区域的字符串"john_doeexample",需要取出域名部分("example")。

这时可以使用FIND函数找到符号的位置,然后再使用MID函数将之后的部分提取出来:=MID("john_doeexample",FIND("","john_doeexample")+1,LEN("j ohn_doeexample")-FIND("","john_doeexample")),即找到的位置再加1作为提取的起始位置,然后取字符串总长度减去的位置作为要提取的长度。

3. 使用RIGHT函数RIGHT函数可以从文本字符串的末尾开始提取指定个数的字符。

其基本语法为:=RIGHT(文本,长度),其中文本为要提取的文本字符串,长度为要提取的字符个数。

excle中提出字母和符号之间的数值

excle中提出字母和符号之间的数值

在Excel中,我们经常需要对字母和符号之间的数值进行计算或者比较。

这样的操作在日常工作中尤为常见,比如在处理财务数据时,我们需要将字母和符号转化为相应的数值来进行计算或者分析。

本文将介绍在Excel中如何提取字母和符号之间的数值,并对其进行适当的操作。

一、使用MID函数提取字符串中的数值MID函数是Excel中一个非常实用的函数,它可以用来提取字符串中指定位置的字符。

我们可以利用MID函数提取字母和符号之间的数值。

假设我们有一个字符串“AB123CD”,我们需要提取其中的数字“123”,可以使用如下公式:=MID(A1,3,LEN(A1)-4)其中A1是包含字符串“AB123CD”的单元格,3是起始位置,LEN(A1)-4是截取的长度,这样就可以得到“123”这个数值。

如果字符串中的位置是固定的,我们也可以直接指定起始位置和长度来提取数值。

二、使用LEFT和RIGHT函数提取固定长度的数值除了MID函数,我们还可以使用LEFT函数和RIGHT函数来提取字符串中固定长度的数值。

假设我们有一个字符串“AB123CD”,我们需要提取其中的数字“123”,可以使用如下公式:=RIGHT(LEFT(A1,5),3)其中LEFT(A1,5)是提取从第1个字符到第5个字符的子字符串,再通过RIGHT函数提取这个子字符串的最后3个字符,就可以得到数字“123”。

三、利用文本函数处理字母和符号除了MID、LEFT和RIGHT函数外,Excel还提供了一些文本函数可以帮助我们处理字母和符号。

我们可以使用SUBSTITUTE函数来替换字符串中的字母和符号,将其转化为数字。

我们也可以使用FIND函数来查找指定字符在字符串中的位置,进而提取所需的数值。

四、注意事项在提取字母和符号之间的数值时,需要注意字符串的格式和长度。

如果字符串的格式不固定,或者长度不固定,那么需要根据具体情况来选择合适的方法。

另外,在提取数值之后,还需要对其进行适当的格式化和处理,确保得到的结果是准确的。

excel中取出字符串中的数字

excel中取出字符串中的数字

excel中取出字符串中的数字1.数据- "a12345y" 如何自动撷取其中的数字2.数据- "12345" 如何自动只撷取其中间三个的数位(即234)放於其它格上如果你的数据有固定的长度和格式,公式可以简单些,如,前后各有1位字母:A1="a12345y"B1=Mid(A1,2,5)如果前后字母个数不固定:B1=MID(A1,MA TCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(IN DIRECT("1:"&LEN(A1))),1))-MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1)数组公式,按Ctrl+Shift+Enter三键结束。

1、截取字符串中的一部分,用函数MID()。

A1="a12345y"公式最外层是Mid()函数,该函数的格式是:Mid(文本,开始位置,长度)对应公式是:MID(A1,MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(INDIR ECT("1:"&LEN(A1))),1))-MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1)2、长度=末位置-首位置+1。

其中MATCH()公式有不同的两个:文本A1中第1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),) 文本A1中最后1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)) 两个公式不同之处,在于最后一个逗号。

Excel小技巧|三种方法提取文本中的数字

Excel小技巧|三种方法提取文本中的数字

Excel⼩技巧|三种⽅法提取⽂本中的数字⽇常⼯作中,经常会遇到数据较乱的表格,如何清洗这些数据,难免会让⼈头疼。

下图中B列为员⼯出差⼿填费⽤,规则较乱,没规律可循,那么如何从中提取⾦额呢?今天介绍三种⼩技巧从⽂本中提取数字,总有⼀种适合你哦~⽅法⼀万⾦油快捷键Ctrl ECtrl E快捷键组合可以说是Excel中最强组合之⼀,可以解决⼤量有规律可循的数据。

直接在C2单元格内输⼊B2单元格内的数字“118”,选中C2:C8,同时按下【Ctrl】【E】键,完成快速填充,可以发现,⽂本中的数据已经被提取出来!⽅法⼆ Word Excel双剑合璧第⼀步,先将B列数据复制到Word中,粘贴⽅式为【链接与使⽤⽬标格式】第⼆步,同时按下【Ctrl】【H】键,弹出替换框,在查找内容框中输⼊:'[!0-9]',点击【更多】按钮,勾选【使⽤通配符】,点击【全部替换】,即可将⽂本中的⾮数字全部替换为空。

通配符[0-9]表⽰0-9之间的数字,前⾯'!'表⽰⾮的意思,⾮0-9,⾮数字全部被替换,只会留下数字,这是再将数字复制回Excel单元格即可。

⽅法三万能技术VBA在Excel中,我们也可以利⽤正则表达式去提取⽂本中的数字。

打开visual basic,新建⼀个模块,插⼊代码,点击运⾏,可以发现,数字已经被提取出现。

具体代码展⽰如下:Sub 获取座位数()Dim obj As ObjectDim a As Integer, i As Integer, j As Object, objs As Objectre = '\d 'Set obj = CreateObject('VBScript.RegExp')With obj.Global = True.Pattern = reEnd WithFor a = 2 To Cells(Rows.Count, 1).End(xlUp).RowSet objs = obj.Execute(Cells(a, 2))i = 0For Each j In objsi = j iNextCells(a, 3) = iNextMsgBox '已完成'End Sub代码主要运⽤到正则表达式,【\d 】表⽰匹配⼀个或者多个数字,它会将匹配到的数字提取出来,在赋值到对应的单元格,VBA的好处在于代码可反复利⽤,下次遇到类似的需求,简单修改下代码即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

excel中取出字符串中的数字
1.数据- "a12345y" 如何自动撷取其中的数字
2.数据- "12345" 如何自动只撷取其中间三个的数位(即234)放於其它格上
如果你的数据有固定的长度和格式,公式可以简单些,如,前后各有1位字母:
A1="a12345y"
B1=Mid(A1,2,5)
如果前后字母个数不固定:
B1=MID(A1,MA TCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(IN DIRECT("1:"&LEN(A1))),1))-MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1)
数组公式,按Ctrl+Shift+Enter三键结束。

1、截取字符串中的一部分,用函数MID()。

A1="a12345y"
公式最外层是Mid()函数,该函数的格式是:
Mid(文本,开始位置,长度)
对应公式是:
MID(A1,MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(INDIR ECT("1:"&LEN(A1))),1))-MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1)
2、长度=末位置-首位置+1。

其中MATCH()公式有不同的两个:
文本A1中第1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),) 文本A1中最后1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)) 两个公式不同之处,在于最后一个逗号。

公式什么意思先别管,你只要知道:
长度=最后1个数字的位置-第1个数字的位置+1
本例中:6-2+1=5,数字长度为5。

3、拆散字符串。

下面公式取出字符串中的每一粒字符:
MID(A1,1,1)="a"
MID(A1,2,1)="1"
……
MID(A1,6,1)="5"
MID(A1,7,1)="y"
下面公式返回的是拆散后的一串字符(数组):
MID(A1,{1;2;3;4;5;6;7},1)={"a";"1";"2";"3";"4";"5";"y"}
其中{1;2;3;4;5;6;7}用ROW(INDIRECT("1:"&LEN(A1)))计算所得。

这是数组公式中的一个基本技巧,如果还不懂,请从固顶的帖子中找到并学习它。

在编辑栏中,请用鼠标选取MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1) 然后按F9可以看到上面的结果。

4、0乘以任何数都得0吗?
你一定不会怀疑。

还是在编辑栏,请继续用鼠标选择:
0*{"a";"1";"2";"3";"4";"5";"y"},或者选择:
0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),按F9,结果显示为:
{#VALUE!;0;0;0;0;0;#VALUE!}。

真的不是“都得0”。

里面除了0,还有错误值。

个数与原来数组元素的个数相同。

0乘以任何数还是得0。

因为前后两个"a"和"y",根本不是数,所以返回#VALUE!。

0*{"a";"1";"2";"3";"4";"5";"y"}的目的使结果简单化,数字变0,字符变#VALUE!。

为什么这样做?请听下回分解。

5、Match()会告诉你,第1个0和最后一个0的位置。

第1个0的位置:Match(0,{#VALUE!;0;0;0;0;0;#VALUE!},0)
最后1个0的位置:Match(0,{#VALUE!;0;0;0;0;0;#VALUE!})
如果不明白,请花点时间看一下关于MATCH()的帮助。

这个位置,其实也就是{"a";"1";"2";"3";"4";"5";"y"}中"1"和"5"的位置,也就是"a12345y"中1和5的位置。

现在再返回开头看公式:
Mid(文本,开始位置,长度)
明白了吗?
对公式的一点补充:数字、字母混合组合的情况,本公式不适用,如:从"a123b45y"中提取123或45。

相关文档
最新文档