excel要从一串文本里抠数字,别上来就硬套复杂公式,核心先看数字在整段文字里的位置。数字在开头、末尾、夹在中间,对应的公式写法完全不一样;只有数字位置完全没规律的时候,才需要用 lookup、mid、row 这类函数组合做通用提取。
数字在文本开头,用 LEFT 配合 LOOKUP
要是所有数字都排在文本最前面,比如“123ABC”“123-ABC”这类格式,直接在要出结果的单元格输开头提取公式就行。逻辑很简单:从左往右挨个截字符,让Excel自动找出可以转成数字的最长那段内容。
常用写法直接抄这个就行:=LOOKUP(0,-LEFT(B3,ROW($1:$15)))。这里 B3 是你存原文本的单元格,ROW($1:$15) 意思是最多尝试截取15位长度的内容;要是你要提取的数字可能超过15位,把这里的15改大就好。
数字在文本结尾,用 RIGHT 配合 LOOKUP
要是数字全在文本末尾,比如“ABC123”“ABC-123”,把截取函数换成 RIGHT,从最右侧开始往回找数字就行。
对应公式是这样的:=LOOKUP(0,-RIGHT(B3,ROW($1:$15)))。这种写法专门适配数字固定在尾部的场景,像编号后缀、订单尾号、姓名后面跟的分数,都可以先拿这个公式试,基本都能出结果。
数字在中间,用 LEFT、RIGHT、MID 组合
操作第三步:要是数字夹在两段文字中间,比如“ABC123DEF”这种格式,光靠 LEFT 或者 RIGHT 就拿不到正确结果了。得先定位到数字开始的位置,再把连续的整段数字截出来。

这个场景下的公式看起来会比较长,核心逻辑是用 MID 逐个读取每个字符,再靠 LOOKUP 判断哪段内容是合法数字。公式看着复杂,实际作用就一个:把藏在文字中间的连续数字段单独挑出来。
位置不固定,用通用公式处理
操作第四步:要是同一列文本里啥格式都有,既有“ABC123”,又有“123ABC”,还有“ABC123DEF”,数字位置完全不固定,直接用通用公式最省事。下面这个公式不管数字在开头、末尾还是中间,都能把对应的数字部分提出来。

通用公式的常用写法是:=LOOKUP(1,-MID(B3,LOOKUP(10,--MID(B3,ROW($1:$20),1),ROW($1:$20)),ROW($1:$20)))。如果只需要提取整数,这个逻辑完全够用;要是还想保留小数点,就得把小数点也加入判断规则,或者直接用新版 Excel 的 REGEXEXTRACT 函数。
如果你用的是支持正则函数的新版 Microsoft 365,直接用 REGEXEXTRACT 提取数字就行,公式短很多,匹配连续数字、小数、手机号这类内容都更顺手。但很多旧版 Excel、普通版本的 WPS 表格都没有这个函数,日常要兼顾兼容性的话,还是 LOOKUP、MID、LEFT、RIGHT 这些组合写法最稳妥。
最后记个选公式的优先级就行:数字在最左边就用 LEFT 相关的写法,数字在最右边就用 RIGHT 相关的写法,数字位置乱了再用通用公式。公式跑完之后要是看到单元格左上角出现绿色小三角,说明提取出来的结果被识别成文本了,只要给它乘个1、加个双负号或者直接改单元格格式,就能转成正常的数值格式。











