EXCEL中从一个字符串里提取连续数字引发的思考(二)

合集下载

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的正则表达式是一种比较高效的方法。

在本文中,我将结合实际案例,详细介绍如何使用Excel正则表达式来提取句子中的数字,以及一些注意事项和技巧。

二、基本概念在开始介绍具体操作之前,我们首先需要了解一些关于正则表达式的基本概念。

正则表达式是一种用来描述、匹配字符串的方法,它可以用来匹配特定模式的文本。

在Excel中,我们可以借助正则表达式来进行复杂的文本搜索和替换操作,从而提取我们需要的信息。

三、提取句子中的数字下面我们来看一个具体的例子,假设我们有一段文本:“在2021年度报告中,公司实现营业收入4567万元,同比增长15%。

”我们需要从这段文本中提取出“4567”和“15%”这两个数字信息。

在Excel中,我们可以使用“=REGEX.EXTRACT()”函数来对文本进行正则表达式匹配。

具体操作步骤如下:1. 在一个空白单元格中输入“=REGEX.EXTRACT()”函数。

2. 然后在括号内输入需要匹配的文本范围,即我们的目标文本。

3. 接着在逗号后面输入正则表达式,以识别数字的模式。

在这个例子中,我们可以使用“\d+”来匹配一个或多个数字。

4. 最后按下回车键,即可在这个单元格中得到提取出的数字信息。

四、注意事项和技巧在使用Excel正则表达式提取句子中的数字时,有一些注意事项和技巧需要我们注意:1. 正则表达式的模式需要根据具体情况进行调整,例如如果需要匹配小数或百分比,就需要使用不同的正则表达式模式。

2. 可以借助通配符和定界符来提高匹配的精度,比如在本例中可以使用“营业收入(\d+)"来只匹配包含“营业收入”的数字。

3. 可以结合其他Excel函数进行进一步的处理,比如将提取出的文本转换为数值格式或进行其他运算。

五、总结与展望通过本文的介绍,相信大家对于如何使用Excel正则表达式来提取句子中的数字有了一定的了解。

如何提取excel中的一段数字、文字、符号

如何提取excel中的一段数字、文字、符号

一、单元格A1中‎有如下内容:要提‎取出数字‎提取Exc‎e l单元格中连续‎的数字的函数公式‎是:=LOOK‎U P(9E+30‎7,--MID(‎A1,MIN(F‎I ND({1,2‎,3,4,5,6‎,7,8,9,0‎},A1&123‎4567890)‎),ROW ($1‎:$8)))‎或者=LOOK‎U P(9E+30‎7,--MID(‎H2,MIN(F‎I ND({0;1‎;2;3;4;5‎;6;7;8;9‎},H2&123‎4567890)‎),ROW(I N‎D IRECT("‎1:"&LEN(‎H2)))))‎解释一下这个公‎式FIND函‎数——查询文本所‎在位置FIND‎(find_te‎x t,withi‎n_text,[‎s tart_nu‎m])FIND‎(需查找的文本,‎包含查找文本的单‎元格,开始查找单‎元格的字符位置(‎可选))此处F‎I ND函数是搜索‎{1,2,3,4‎,5,6,7,8‎,9,0}数字在‎“A1&1234‎567890”中‎所在的位置;A‎1&123456‎7890的目的是‎在用FIND函数‎查询时,不出现错‎误值,使之后的M‎I N函数可以正常‎运行。

即FIN‎D({1,2,3‎,4,5,6,7‎,8,9,0},‎“小王联系电话5‎8670098负‎责财务12345‎67890”)‎选取划黑后按F9‎,得出的位置为:‎{19,20,2‎1,22,7,9‎,10,8,13‎,11}‎MIN函数‎——返回列表中的‎最小值MIN(‎n umber1,‎n umber2,‎……)MIN(‎数字1,数字2,‎……)将FIN‎D所得结果{19‎,20,21,2‎2,7,9,10‎,8,13,11‎}带入MIN函数‎,最小值所得为7‎,正是第一个数值‎出现的位置;也‎正是之前FIND‎函数中使用A1&‎12345678‎90的原因。

用函数在Excel中从文本字符串提取数字

用函数在Excel中从文本字符串提取数字

用函数在Excel中从文本字符串提取数字Excel输入数据过程中,经常出现在单元格中输入这样的字符串:GH0012JI、ACVB908、华升12-58JK、五香12.56元、0001#、010258等。

在进行数据处理时,又需要把其中的数字0012、908、12-58、12.56、0001提取出来。

如何通过使用Excel的工作表函数,提取出字符串中的数字?一、问题分析对于已经输入单元格中的字符串,每一个字符在字符串中都有自己固定的位置,这个固定位置都可以用序列数(1、2、3、……)来表示,用这些序列数可以构成一个可用的常数数组。

以字符串“五香12.56元”为例:序列数1、2、3、4、5、6、7、8分别对应着字符串“五香12.56元”中字符“五”、“香”、“1”、“2”、“.”、“5”、“6”、“元”。

由序列数组成一个保存在内存中的新数组{1;2;3;4;5;6;7;8}(用列的形式保存),对应字符串中的字符构成的数组{“五”;“香”;“1”;“2”;“.”;“5”;“6”;“元”}。

因此解决问题可以从数组着手思考。

二、思路框架问题的关键是,如何用序列数重点描述出字符串中的数字部分的起始位置和终止位置,从而用MID函数从指定位置开始提取出指定个数的字符(数字)。

不难看出,两个保存在内存中的新数组:{“五”;“香”;“ 1”;“2”;“.”;“5”;“6”;“元”}{1;2;3;4;5;6;7;8}数组具有相同大小的数据范围,而后一个数组中的每一个数值可以准确地描述出字符串中字符位置。

字符与序列数的对应关系如下表所示:字符字符位置五—— 1香—— 21 —— 32 —— 4. —— 55 —— 66 ——7元——8所以解决问题的基本框架是:用MID函数从字符串的第一个数字位置起提取到最后一个数字止的字符个数。

即{=MID(字符串,第一个数字位置,最后一个字符位置-第一个字符位置+1}。

其中“+1”是补上最后一个数字位置减去第一个数字位置而减少的一个数字位。

excel 抓取穿插在文本中的数字的函数

excel 抓取穿插在文本中的数字的函数

在Excel中,抓取穿插在文本中的数字是一个常见且有用的需求。

为了实现这一目标,我们可以使用一些函数和技巧来提取文本中的数字,并将其转换为可以进行计算和分析的数据。

在本篇文章中,我将介绍如何使用Excel中的函数来实现这一功能,并共享一些个人观点和理解。

1. 使用MID函数提取特定位置的字符Excel中的MID函数可以帮助我们从文本中提取特定位置的字符。

如果我们要提取文本中的第3个字符到第7个字符,可以使用MID函数的形式为=MID(文本,3,5)来实现。

2. 使用FIND函数定位数字在文本中的位置如果文本中的数字位置不固定,我们可以使用FIND函数来定位数字在文本中的位置。

FIND函数的形式为=FIND(要查找的内容, 在哪里查找, 开始位置),通过这个函数我们可以找到目标数字在文本中的起始位置。

3. 结合MID和FIND函数提取穿插在文本中的数字结合MID和FIND函数,我们可以通过先定位数字的起始位置,然后根据数字的长度来提取目标数字。

这样,无论数字在文本中的位置如何变化,我们都可以准确地提取出目标数字。

4. 个人观点和理解在实际工作中,提取穿插在文本中的数字是一个常见且重要的任务。

当我们需要从产品描述中提取价格信息,或者从销售数据中提取数量信息时,这项技能就显得尤为重要。

掌握这项技能不仅可以提高工作效率,还可以减少人为错误的发生,从而更好地服务于工作和决策的需要。

5. 总结通过本文的介绍,我们了解到了在Excel中提取穿插在文本中的数字的方法和技巧。

通过使用MID和FIND函数,我们可以准确地提取出目标数字,为后续的计算和分析工作打下良好的基础。

在本文中,我们详细介绍了如何使用Excel的函数来提取穿插在文本中的数字,并共享了个人观点和理解。

希望这篇文章能够帮助到您,同时也欢迎您共享您的看法和经验。

提取穿插在文本中的数字在实际工作中确实非常重要,而且这项技能的应用场景非常广泛。

在商业领域中,我们通常需要从各种文本信息中提取数字数据,以支持商业决策和业务分析。

EXCEL中从一个字符串里提取连续数字引发的思考(一)

EXCEL中从一个字符串里提取连续数字引发的思考(一)

EXCEL中从一个字符串里提取连续数字引发的思考(一)从一个字符串中提取连续数字的函数=LOOKUP(9E+307,--MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),RO W(INDIRECT("$1:$"&LEN(A1)))))引发的思考(一)假设A1=“总人口7895432个”,A列的内容都是这种形式的,你的任务就是把其中的数字单独提取出来放到B列。

以B1单元格为例:此函数的思路就是先在A1中找到第一个数字的位置,依次1位、2位……的提取出来,很显然最后一个数字就是需要的结果。

函数框架就是find找数字出现的位置,通过min过滤出第一个位置,mid从此位置开始提取,提取的位数由row升序排列,然后转换成数字,最后用lookup找出其中最大的数。

首先用FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")找出A1中数字所在的位置,因为{0,1,2,3,4,5,6,7,8,9}是一个数组,则返回值也是一个数组,按F9试算就一目了然;不过,B1单元格里只会出现第一个数字”0”的位置。

要避免出现#value错误,那么A1必须要串联一串数字,A1&"0123456789"就是这个原因。

有些屌丝为了显示高深莫测,把数组{0,1,2,3,4,5,6,7,8,9}写成数组ROW($1:$10)-1来显摆;把A1&"0123456789"写成A1&5^19来浪费计算资源!就为了表示他知道5^19=19073486328125,包含了0到9的所有数字!min(find)的结果才是需要的,在find的结果中找出最小的数字,也就是A1中数字最高位”7”所在的位置4。

至此,mid函数的第一个参数单元格A1,第二个参数4都有了,第三个参数就要用row函数来决定了。

Excel中如何提取数字?会这几招就够了

Excel中如何提取数字?会这几招就够了

Excel中如何提取数字?会这几招就够了有读者留言希望能够整理一期内容,讲解从数字、汉字中提取汉字或者数字的方法,本文将对比较常见的几类提取情况进行讲解。

使用公式提取单元格内的数字,要根据具体的数据结构找到某种规律从而设计出对应的公式。

当然也有所谓的万能提取公式,不过非常复杂并且计算量大,因此只在文末简单说明。

第一类情况:数字在左侧•例一:数字在左侧,且数字位数固定。

在这个例子中,数据非常有规律,数字都在左边的三位,要想将学号单独提取出来,只需要使用left函数即可:=LEFT(A2,3)公式也非常简单,第一个参数是要提取数字的单元格,第二个参数是要提取几位(从左边算起)。

对于例一的这一类数据,使用的时候根据数字的长度修改第二参数即可。

•例二:数字在左侧,数字位数不固定,但是有明显的分隔符号。

如果数字长度不是固定的三位,使用之前的方法就不行了,如下图。

这时就需要找到数据源的规律,再利用规律进行操作。

当前的数据统一存在一个"-"号,可以根据"-"号的位置来确定数字的长度,再用left提取。

对于这种情况需要用到另一个函数来帮忙,那就是find函数。

利用公式=FIND("-",A2,1)可以确定"-"的位置。

find函数有三个参数,第一个参数是要找什么内容,第二个参数是从哪里找,第三个参数是从第几个字开始找(从左边算起)。

=FIND("-",A2,1) 意思是在A2单元格找“-”,从开始位置找(左边第一位)。

公式的结果是数字,代表“-”在单元格的位置(第几个字符),此时我们需要提取的数字长度就是find的结果减1,因此方法就有了:=LEFT(A2,FIND("-",A2,1)-1)这个方法的适用范围也比较广泛,只要可以发现比较明显的分隔符号(可以是符号,汉字,字母等等内容),都可以使用这个方法。

excel 筛选单元格内5位连续数字并提取

excel 筛选单元格内5位连续数字并提取

文章标题:深入理解Excel中筛选单元格内5位连续数字并提取的方法在日常工作中,我们经常需要使用Excel进行数据处理和分析。

其中,筛选特定条件下的数据是常见的需求之一。

今天,我们将深入探讨在Excel中如何筛选单元格内的5位连续数字,并提取出相关数据。

通过本文的学习,你将能够更加熟练地运用Excel来处理各类数据,提高工作效率。

一、什么是筛选单元格内5位连续数字并提取在Excel中,我们经常会遇到需要从大量数据中筛选出符合特定条件的数据。

而提取单元格内的5位连续数字,就是其中一种常见的需求。

比如在一列通信方式号码中,我们需要找出所有包含连续5位数字的通信方式号码,这就需要用到筛选和提取功能。

二、如何在Excel中筛选单元格内5位连续数字并提取要实现在Excel中筛选单元格内5位连续数字并提取,一般可以采用以下几种方法:1. 利用Excel的筛选功能:选中需要筛选的数据列,然后点击筛选功能按钮,选择“文本筛选”或“数字筛选”,在弹出的筛选条件中选择“包含”,并输入5位连续数字的条件,即可筛选出符合条件的数据。

2. 利用Excel的函数:通过使用Excel的函数,比如LEN、MID、ISNUMBER等,可以编写公式来筛选并提取特定条件下的数据。

利用MID函数可以提取指定位置的字符,结合ISNUMBER函数可以判断是否为数字,从而实现对5位连续数字的筛选提取。

三、实例分析:在Excel中筛选包含5位连续数字的通信方式号码假设我们有一列通信方式号码数据,现在需要筛选出所有包含5位连续数字的通信方式号码,并提取出来。

我们可以使用上述方法进行操作:1. 利用筛选功能进行筛选:首先选中通信方式号码所在列,点击数据菜单中的“筛选”,然后选择“文本筛选”,在弹出的筛选条件中输入5位连续数字的条件,比如“*12345*”,点击确定后即可筛选出符合条件的通信方式号码。

2. 利用函数进行筛选提取:另一种方法是利用函数,在相邻列中编写公式来判断通信方式号码是否包含5位连续数字。

Excel从一个字符中提取部分字符

Excel从一个字符中提取部分字符

Excel从一个字符中提取部分字符
今天在后台看到来自BEN的留言:
根据他的问题,设计了这个表格,利用MID FIND函数完成中间编号的提取。

函数解析:
MID函数:从一个字符串中截取出指定数量的字符。

语法:=MID(字符,从第几位开始取,取多少位)
FIND函数:查找一个字符串在另一个字符串中出现的起始位置。

语法:=FIND(要查找的字符串,包含要查找关键字的单元格)
本例子的公式为:=MID(A1,FIND('(',A1) 1,9)
先利用FIND函数查询(的出现位置,再将这个位置1作为MID 函数截取的起始位置。

以上就是本期学员问题答复,希望对你有所帮助。

-本文完-。

excel怎么提取特定字符串前后数据

excel怎么提取特定字符串前后数据

excel怎么提取特定字符串前后数据
我们在excel中输入一些特定字符串后,想要从当中提取出前后的数据,该如何操作呢?下面随店铺一起来看看吧。

excel提取特定字符串前后数据的步骤
1、如下图,要提取#后面的字符,也即红色的“SDK”到B列。

2、首先,在B2中输入公式:=FIND("#",A2),返回#在字符串中的位置,#在A2单元格文本中是第6个字符。

3、知识点说明:FIND()函数查找第一参数在第二参数中的位置。

如下图,查找“B”在“ABCD”中是第几个字符。

第一参数是要查找的字符“B”,第二参数是被查找的字符串。

最终返回“B”在“ABCD”中是第2个字符。

4、然后,在B2中输入公式:=MID(A2,FIND("#",A2)+1,99),这样,就提取出了#后的字符。

5、知识点说明:MID()函数返回从字符串中制定字符开始若干个字符的字符串。

如下图,MID()函数返回“ABCDE”字符串中从第2个字符开始的连续3个字符,也就是返回“BCD”。

6、综上,=MID(A2,FIND("#",A2)+1,99)的意思就是从A2单元格#字符后面的一个字符起,取长度为99的字符串。

其中的99是一个较大的数字,能涵盖#后字符的最大长度即可。

Excel公式技巧11:从字符串中提取数字——数字位于字符串末尾

Excel公式技巧11:从字符串中提取数字——数字位于字符串末尾

Excel公式技巧11:从字符串中提取数字——数字位于字符串末尾excelperfect上篇文章讲解了提取位于字符串开头的数字的公式技术,本文研究从字符串开头提取数字的技术:1. 这些数字是连续的2. 这些连续的数字位于字符串的末尾3. 想要的结果是将这些连续的数字返回到单个单元格与上篇文章一样,对于下面研究的每种解决方案,我们需要在两种不同的情况下测试其健全性:1. 字符串中除末尾外其他地方没有数字的情况,例如ABC456。

2. 字符串中除末尾外其他地方也有数字,要么在开头,要么在中间,例如123ABC456或ABC123DEF456。

MIN与FIND公式1:=0+MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1/17)),LEN(A1))如果单元格A1中的内容为“ABC456”,那么上述公式1返回“456”。

其解析过程如下:=0+MID(“ABC456”,MIN(FIND({0,1,2,3,4,5,6,7,8,9},“ABC45 6” & 1/17)),LEN(“ABC456”))在A1后面添加1/17与在其后面添加字符串“0123456789”效果相同,详见《Excel公式技巧08. 17分之一和其他全数字(pandigitals)》。

主要是必须将A1与包含0到9的所有数字的字符串连接起来,以防止MIN函数返回错误。

因为如果A1不包含0-9的所有数字,那么FIND函数的返回值至少有一个是错误值,由于MIN函数不会忽略错误值,会导致整个公式的结果也是一个错误值。

通过首先在A1中的字符串末尾添加一个适当的值(例如1/17、3^45,“0123456789”),可以保证该字符串将包含至少一个0-9中的每个数字(因此FIND函数的所有10个返回值都是非错误值),同时通过将字符串放在A1的末尾确保我们不会影响MIN函数所需的输出。

这样,现在上述公式转换为:=0+MID('ABC456',MIN(FIND({0,1,2,3,4,5,6,7,8,9},'ABC456'& 0.0588235294117647)),LEN('ABC456'))可能你还不知道,在某些公式结构中,MIN函数具有强制返回数组的能力,且无需按Ctrl+Shift+Enter组合键。

Excel技巧应用篇:快速将单元格内的数字提取出来

Excel技巧应用篇:快速将单元格内的数字提取出来

Excel技巧应⽤篇:快速将单元格内的数字提取出来我们在⽇常⼯作中,我们经常使⽤excel处理数据,当我们需要单独提取⼀个单元格⾥的长串字符中的数字,我们该如何提取,假如单元格⾥的数据不是很规律的,我们就没有办法使⽤⽂本提取函数,今天我们分享两种⽅法快速将⼀串字符中的数字单独提取出来。

数据如下图,每个单元格的字符长度不相同,如何快速将单元格内的数字(亩数)单独提取出来。

⽅法1:快速填充快速填充功能在EXCEL2013及以上版本中才有的功能,可以让你的数据智能填充,免去要记很多函数的烦恼在前⾯两个单元格连续⼿⼯输⼊要提取的数字,在第⼆个单元格输⼊数字时,系统会⾃动显⽰填充建议,此时只需要按下回车键就可以了。

⽅法2:分列+查找替换这个⽅法在任何版本的Excel或者WPS中都可以使⽤,⽆限制。

⽅法3:函数提取Excel中的截取函数有LEFT、RIGHT、MID、FIND等⽂本函数,函数⽐较复杂,但对于有规律的数据,可以做到⼀劳永逸,直接出结果。

下⾯是这⼏个函数的语法: 1、Excel函数LEFT(意思:字符或者字符所在单元格,从左起提取字符个数),语法:LEFT(text,num_chars) 2、Excel函数RIGHT(意思:字符或者字符所在单元格,提取个数),语法:RIGHT(text,num_chars) 3、Excel函数MID(意思:字符或者字符所在单元格,开始位置,提取个数),语法:MID(text, start_num,num_chars)第⼀个公式:=--MID(A2,FIND("约",A2)+1,FIND("亩",A2)-FIND("约",A2)-1)简单说明⼀下,这个公式,是⽤FIND函数分别找出“约”和“亩”的位置,从⽽得到MID函数截取的开始位置和截取的长度。

最后MID前⾯的“--”是为了将截取出的⽂本数值转换为数值。

Excel中提取字符前面或后面所有字符的操作方法

Excel中提取字符前面或后面所有字符的操作方法

Excel中提取字符前面或后面所有字符的操作方法
工作中,为了匹配相关数据,有时候不得不提取某个字段前面或者的字符,只要我们合理利用EXEL的mid、len、find函数就可以很快实现。

今天,店铺就教大家在Excel中提取字符前面或后面所有字符的操作方法。

Excel中提取字符前面或后面所有字符的操作步骤:
先在A列录入相关内容,,内容包含{省、市、县、区等},进行第2步。

如果取相关字符的后面内容,在B2单元格中输入公式会自动提取省之后的所有内容=MID(A2,FIND("省",A2)+1,LEN(A2)-FIND("省",A2))。

如果取相关字符的前面内容,在C2单元格中输入公式会自动提取省之前的所有内容=MID(A2,FIND("省",A2)+1,LEN(A2)-FIND("省",A2))。

Excel中提取字符前面或后面所有字符的操作。

excel怎么提取特定字符串前后数据

excel怎么提取特定字符串前后数据

excel怎么提取特定字符串前后数据
我们在excel中输入一些特定字符串后,想要从当中提取出前后的数据,该如何操作呢?下面随店铺一起来看看吧。

excel提取特定字符串前后数据的步骤
1、如下图,要提取#后面的字符,也即红色的“SDK”到B列。

2、首先,在B2中输入公式:=FIND("#",A2),返回#在字符串中的位置,#在A2单元格文本中是第6个字符。

3、知识点说明:FIND()函数查找第一参数在第二参数中的位置。

如下图,查找“B”在“ABCD”中是第几个字符。

第一参数是要查找的字符“B”,第二参数是被查找的字符串。

最终返回“B”在“ABCD”中是第2个字符。

4、然后,在B2中输入公式:=MID(A2,FIND("#",A2)+1,99),这样,就提取出了#后的字符。

5、知识点说明:MID()函数返回从字符串中制定字符开始若干个字符的字符串。

如下图,MID()函数返回“ABCDE”字符串中从第2个字符开始的连续3个字符,也就是返回“BCD”。

6、综上,=MID(A2,FIND("#",A2)+1,99)的意思就是从A2单元格#字符后面的一个字符起,取长度为99的字符串。

其中的99是一个较大的数字,能涵盖#后字符的最大长度即可。

查找函数VLOOKUP,从一串文本中提取数字

查找函数VLOOKUP,从一串文本中提取数字

查找函数VLOOKUP,从一串文本中提取数字
我们今天接下来和你说的是在Excel的中数据查找,你必定会想起来VLOOKUP函数吧!普通的数据查找,可能这个函数可以轻易实现查找功能,我们今天和你要说的是,从一串文本字符中间提取数字。

那么这个函数公式应该怎么嵌套去实现这个功能呢?我们一起来看看
首先简单了解一下,这个函数官方的使用语法如下:
VLOOKUP(要查找的值,要查找值的区域,在要查找值区域的第几列,是否需要精确查找)
我们需要利用VLookup函数来提取数字,那么我们应该如何去做呢?
我们先看看结果是如何实现的吧,如下图所示:是不是数字都提取到I列中放置了?
也许这个函数公式你还不是很明白,我们现在慢慢来讲解一下。

MID(H2,ROW($1:$99),100),这一小半截,您是否可以看懂?就是我们常用的取中间值的函数,然后与{1,2}相乘组成数组公式,利用这个特点组成了一个2列99行的内存数组,作为VLOOKUP函数的查询区域,最后查找第二列的值,进行精确查找,就可以得到我们想要的结果。

需要注意的一点是,这个函数公式是数组公式,是需要我们在写完函数公式的时候,按CTRL SHIFT ENTER,否则这个函数公式会报错的。

当然我们也可以使用LOOKUP函数得到这个结果=-LOOKUP(1,-MID(H3&'H',ROW($1:$100),110))。

excel从字符串提取数字最简便的方法

excel从字符串提取数字最简便的方法

excel从字符串提取数字最简便的方法
从字符串中提取数字,一般是用复杂的函数公式完成的,我们今天要学习的是技巧的方法。

如上图所示,要求把A列的数字提取出来放在B列。

操作步骤:
步骤1:复制A列的字符到C列,然后把C列的列宽调整为一个汉字大小的宽度,如下图所示。

步骤2:选取C列
excel2003版里编辑菜单-填充-内容重排
excel2010版里开始选项卡-编辑组-填充下拉-两端对齐执行以上步骤后,字符串和数字就会被拆分显示,如下图所示。

步骤3:从C列的第一个数字向下选取全部,打开提示下拉,点转换为数字。

如下图所示。

步骤4:选取C列,ctrl+g打开定位窗口 - 定位条件-文本。

执行
这一步会选取所有非数字的行,然后右键中点删除文本就行了。

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

EXCEL中从一个字符串里提取连续数字引发的思考(二)
从一个字符串中提取连续数字的函数
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),RO W(INDIRECT("$1:$"&LEN(A1)))))引发的思考(二)
依然假设A1=“总人口7895432个”,A列的内容都是这种形式的,你的任务就是把其中的数字单独提取出来放到B列。

以B1单元格为例:
在上一篇中,使用LOOKUP的框架中会使用到MID,思路还显得很曲折和原始,那么可否就直接以MID为框架来提取数字呢?答案是肯定的,思路也比较简洁,尽管使用起来看似复杂,像下面这样写。

=1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW(INDIRECT("$A1:$"&"A"&LEN (A1))),1)),0),COUNT(1*MID(A1,ROW(INDIRECT("$A1:$"&"A"&LEN(A1))),1)))
接上篇,讲解之前有必要先来认识下ROW和COLUMN函数,这是取行号和列号的函数,那么其参数必须是引用(单元格、行或列)。

比如ROW(C1)=1,COLUMN(C1)=3。

将参数里的单一单元格变成单元格矩阵的话,就会返回一个数组,比如ROW(A1:A5)={1;2;3;4;5},按Ctrl+shift+enter结束输入就会看到公式被{}括起来了,说明是一个数组,而单元格里只显示数组的第一个。

常见的懒人写法ROW(1:100)只写了行号,简直是一种赤裸裸的浪费计算资源的写法,从A 到Z有26列,然后AA到AZ、BA到BZ......这样排列组合下来得有26^26种组合了,计算了多少次啊!简直瞎搞嘛,取个行号而已,大可以写成ROW(A1:A100)或ROW(B1:B100)等等简单明了,按需计算100次而已。

所以,在此篇中,ROW(INDIRECT ("$1:$"&LEN(A1))) 升级成
ROW(INDIRECT("$A1:$"&"A"&LEN(A1)))以减轻计算机负荷。

说到正题,用ROW按字符串长度生成一个序列,为什么要用
ROW(INDIRECT("$A1:$"&"A"&LEN(A1))) ,而不能想当然的直接写ROW($1:$LEN(A1))?因为ROW函数的参数必须是引用!静态的写法ROW(1:100)或ROW(A1:A100)是引用,加了LEN函数就变成动态的了,需要间接引用函数Indirect、Offset或Index来帮忙。

一般常见的是组合Indirect的写法,用法就像C语言里的指针一样。

在静态写法INDIRECT(A1:A3)下,假设A1单元格的内容是B3,A2单元格内容是"哇哈哈",A3为空,而B3单元格内容是"我靠",则INDIRECT(A1:A3)={"我靠";#REF!;#REF!}。

如果加入LEN 函数变成动态的,而且以单元格("A1":"A3")的形式作参数,不会返回单元格的引用值,而是直接返回单元格内容,INDIRECT("$A1:$"&"A"&LEN(A2))={"B3";"哇哈哈";0}。

因为Row和Column可以引用自身,所以Row、Column套任何函数以后,仍然可以引用自身,但Indirect却不行,所以如果直接写Indirect("1:10"),那么公式不能写在1至10
行里的任意单元格里,否则报循环。

这里Indirect肯定是循环了,不过不影响,外套了ROW 之后,还是能返回正确结果的。

接下来就来讲下此MID框架的思路,挨个分析A1单元格的字符,第一次碰到是数字的就记下其位置,MID就从这个位置开始提取,提取的位数则用COUNT来计算。

首先使用ROW(INDIRECT("$A1:$"&"A"&LEN(A1)))按字符个数生成数组
{1;2;3;4;5;6;7;8;9;10;11};
然后使用MID(A1,ROW的结果,1)把A1单元格的字符串从第一位开始到最后一位,一个字符一个字符的取出来,形成字符数组{“总”;”人”;”口”;”7”;”8”;”9”;”5”;”4”;”3”;”2”;"个"};
再*1转换成数字{#VALUE!;#VALUE!; #VALUE!;”7”;”8”;”9”;”5”;”4”;”3”;”2”; #VALUE!};
使用ISNUMBER判断1*MID的结果是否为数字,返回值为TRUE或者FALSE;
然后用MATCH(TRUE, ISNUMBER数组,0)返回第一个数字7所在位置4,MID就从这里开始提取数字;
至于MID的第三个参数则用COUNT(1*MID)计算数字个数;
整体来看,就是MID(A1,MATCH第一个数字位置,COUNT数字个数)提取出数值,然后*1转换成数字完结。

有数组一定要用CTRL+SHIFT+ENTER结束输入。

思路很简单,只是看起来写得复杂而已,最后的结果就是:
=1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW(INDIRECT("$A1:$"&"A"&LEN (A1))),1)),0),COUNT(1*MID(A1,ROW(INDIRECT("$A1:$"&"A"&LEN(A1))),1)))。

相关文档
最新文档