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位连续数字。

  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)))。

相关文档
最新文档