Excel 公式:从文本中提取数字
大家好啊,今天和大家分享 3 个从文本中提取数字的公式。
首先看一下实例图片,在一串文本中,数字有可能在文本的开始处、结尾处或中间。
现在针对这三种情况,给出三种提取数字公式。
数字在文本开始处
这种情况提取数字相对简单些,以下是通用公式:
=-LOOKUP(0,-LEFT(要提取数字的单元格,ROW($1:$15)))
公式中,ROW($1:$15)
部分数字 15 表示想要提取的数字的最长长度,可以根据实际需求调整。
本例中,实际的公式如下:
=-LOOKUP(0,-LEFT(B3,ROW($1:$15)))
数字在文本结尾处
类似上一公式,这种情况的通用公式:
=-LOOKUP(0,-RIGHT(要提取数字的单元格,ROW($1:$15)))
公式中,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)))
公式中,ROW($1:$20)
部分数字 20 表示想要提取的数字的单元格长度,可以根据实际需求调整。
本例中,实际的公式如下:
=-LOOKUP(1,-RIGHT(LEFT(B3,LOOKUP(10,--MID(B3,ROW($1:$20),1),ROW($1:$20))),ROW($1:$20)))
通用公式
大家可能已经思考了,第三个公式适用于前两种情况吗?答案是“肯定适用!”。开始和结尾都是特殊的中间情况。
但是如果明确数字在开始处或结尾处,使用对应的公式会更简洁一些。
有问题欢迎在留言处交流。
请问您像下面这种情况,如何从文本中提取数字呢?多谢!
Finance 101
Sales 205
Legal 303
Logistics 51.2
这种数据提取数字比较直观,因为文本和数字之间有空格,参考如下公式:
=RIGHT(B2,LEN(B2)-FIND(” “,B2))
lookup的用法有介绍吗?
请参考:Excel LOOKUP 函数(数组形式)
为啥在vlookup前面有个减号
因为在公式内部先把数字转换成了负数,所以最后再转换回来
如果是有两个呢 asdfasd12342sadf33334sdf,这种
这种不定位置、不定长度的多个数字提取,用公式会很复杂。有没有其他的规律再提供一下,可以简化一下公式,要不然太繁杂了
可以出一版函数使用教程吗?就是每一个函数使用的原理,比方说:SUM 它是数字相加的总和,选中需要相加数字的行或者列,就会得出总和
本站【函数】页面就是所有函数的教程清单,可以按需求搜索查看。
是不是能用excel的智能填充
智能填充也是可以的
Excel是 VBA其中的一种表达方式吧 是vba好学还是Phoshop好学
VBA 算是一种编程语言,可以提高办公软件的自动化程度,需要学习相关的语法和程序算法。与PS不是同类型,说不上哪个好学。
第3个公式咋理解,没看懂
本篇只列出公式,后续争取写一篇原理介绍
写的太棒了 加油
为啥我原封不动粘贴公式,出来是错误,显示这个#N/A
目标数据区域也是跟示例一样吗?还有数据格式
一步出不来就分步做呗,先分列,一个字符一列,再if(isnumber)判断,不是数字就为空,最后textjoin组合起来。或者按着上边的步骤在vba里自定义公式
在一串文本DN300-1.0中,结尾处数字为1.0时,提取的数值为-1而不是1,如何调整公式?
因为1的前面刚好是一个负号,导致公式中生成的数字没有按升序排列,不符合LOOKUP函数的一个特点,所以会出现这个情况。
如果文本都是按照上述文本的格式,可以直接用find函数找到负号的位置,再用RIGHT、LEN等函数读取负号后的数字。
假如数据含有的文字数量是相同的,且是在左边时,我们可以使用提取函数right函数,截取对应的数字个数就行了。以上是自己的解法,如有不对,请大家指教指教
a1b2c3这种情况不适用于这个公式 有什么办法么 谢谢
=TEXTJOIN(“”, TRUE, IF(ISNUMBER(VALUE(MID(A1, ROW(INDIRECT(“1:” & LEN(A1))), 1))), MID(A1, ROW(INDIRECT(“1:” & LEN(A1))), 1), “”))
这种暂时没有研究,看大家有没有思路
怎末在表格里面插入动态图片?哪位大神会。我找遍全网没找到一个有用的
经测试,Excel 365版本可以插入GIF动态图
这个好像确实没有好办法,看大家有没有思路
直接插GIF,难道不行吗?
经测试,Excel 365版本可以插入GIF动态图,赞!
为啥公式前需要加负号哦
这个与里面的负号相对应,先提取负数,最后再把它转为正数。
负号不用行吗?
本例中是不行的
excel2019新增的函数不更新一下吗?站长好人一生平安。
很快开始会更新的,感谢反馈
=-LOOKUP(0,-LEFT(A19,ROW($1:$15)))
输入ROW($1:$15)后就变成引用1-15行了,请问这是什么原因呢?
本身就是这样的,公式自身计算的过程中,将其转换为结果使用,即1、2…15的数字,用于提取文本里的数字。
6
好像15位以上的数字提出来后面就变成多个00,与原数字不一样 这要怎么解决呢
基于Excel的自身的数字最长15位的特性,使用此公式无法避免出现超过15的数字,其他工时我们考虑一下。
请原谅我的无知。。
原来15是这么来的啊!!纳闷了半天。。
太好用了
太实用了
LOOKUP第一个值是啥含义?一会是0 一会1 那么0适合什么场景?1适合什么场景?
LOOKUP 函数第一个参数是需要查找的值。这里使用0或1,是结合LOOKUP函数本身查找的特性选择的。LOOKUP函数查找特性如下:
1、如果 LOOKUP 函数找不到 lookup_value,则会与 数组中小于或等于 lookup_value 的最大值进行匹配。
2、数组中的值必须按升序(按小到大)排列,否则LOOKUP函数可能无法返回正确的值。各类型数值升序排列如下:
– 数字:-1、0、1、2;
– 文本:a、b、c、D、e(不区分大小写);
– 逻辑值:FALSE、TRUE
详细说明参考这篇文章:Excel LOOKUP 函数(数组形式)
有没有讲解呀,操作都很简单,就是不懂原理
后续会发布,感谢建议
爸爸 能有视频教程最好了
收到
选定数字crtl+c然后crtl+e即可
好像不可以,要引用示例,就不知道该怎么操作了
在你所需要提取的数列旁边使用就行,需要注意的是,原数列中间不要有间断,即中间不能空行,我的做法是用 – 代替空行,这样后面提取出数字后也可以很方便的替换掉 –
对的,单次需求可以智能填充实现
很好很强大
尾数是双数0的话取值就会是0,比如:abc100 ,abc10000
这种情况可以修改LOOKUP函数的第一个参数到一个大于零的数字。
Great content! Keep up the good work!
能把数字提取出来还能把原单元格里面的数字删除吗
可以在此公式基础上再套一个substitute函数,替换成空字符即可
还有,表格里两个数字的时候为啥不可以,也显示#N/A
你是不是写的是ABC12,然后用=-LOOKUP(0,-LEFT(F50,ROW($1:$15)))它寻找,#N/A这个意思是无法找到数值,数字在右边要用right。
两个数字也是可以的,请看前述问题
=-LOOKUP(1,-RIGHT(LEFT(E2,LOOOKUP(10,–MID(E2,ROW($2:$15),1),ROW($2:$15))),ROW($2:$15)))
老师,这哪里的问题,单元格中出现了#N/A
1、第二个LOOKUP函数名称写错了;
2、MID函数前是两个减号(–)
还是有点不明白这句话都(部分数字 15 表示想要提取的数字的最长长度,可以根据实际需求调整)
我输入了15然后格子全部变成粉红色了,我以为说15就是粉红色格子15个,然后去数了不对的,全部变粉红色了
是按照这个格式ROW($1:$15)输入的吗?可以贴一下你的公式吗?
=-LOOKUP(0,LEFT(K3,ROW($1:$3)))
公式中ROW($1:$3),$3应该取大一点。$1:$3最多可以匹配三位数字,即最大999。根据需要提取的数字位数,选择最大的一个数字,本例中15位可以匹配大部分数字了
我已经爱上你了,怎么会有这种东西,偶吼吼
公式前面加个负号是什么意思
把返回的数字转负数,然后根据LOOKUP函数的特性返回其中的数字
这个方法已经get
谢谢站长
谢谢站长分享
坚持下去啊站长
数字在文本中间这个公式一直用不了吖
会不会是哪个-号少打了呢
建议对操作方式排个序
=-LOOKUP(0,-RIGHT(B2,ROW($1:$12))),老师看下哪里不对
我这里测试没问题,会不会是源数据不再B2单元格?
学习了,对工作很有帮助,谢谢老师分享
如果有多组数字夹杂文本,比如数字跟文本再跟数字再跟文本,上面的那个通用公式提出的结果就总是最后一组数字。
思路是利用函数返回数组,再作为实参向下级函数传递是吧?
ROW(1:4) 函数返回{1;2;3;4},LEFT函数接受数组参数,分别截取四个部分,返回对应数组。
最后LOOKUP函数选择最大的数字
这公式好长啊
用Ctrl+E更快
是的,如果需求是一次性的,这个快捷键更快
谢谢分享,然后个人关于上述公式存在一些疑问,还有关于数字穿插在文本中提取的个人见解方法已在懒人Excel公众号留言,期待您的回复。
-LOOKUP(0,-LEFT(B3,ROW($1:$15))),请问函数前为什么要加负号啊,不加的话确实函数就计算错误了
对公式逐步进行分解你就明白了。首先left,right,mid这三个公式取出来的值都是文本,在这之前+负号相当于文本×-1,那不是纯数字的内容会变成错误值,lookup在查找不到准确对应值时会返回小于第一参数的内容中的最小值,最后再用负号将其转为正数
你好,我对于Excel也有一些总结,特别是数据处理这一块,我可以分享下这些知识,但是平台有提供这个入口吗
非常欢迎投稿,可以在公众号后台发私信交流一下
lookup函数找数值0,{-1;-12;-123}中小于或等于0的最大值不是-1么?
LOOKUP 函数对参数数组的另一个要求是:数组中的值必须按升序(按小到大)排列,否则LOOKUP函数可能无法返回正确的值。
厉害,明白了,谢谢指导
great!