乐于分享
好东西不私藏

excel别再手动抠数字了,这几个公式可以试试

excel别再手动抠数字了,这几个公式可以试试

是不是每次碰到文本夹杂数字的数据,都只能一个个手动复制删减?

耗时、低效、还容易出错!其实 Excel 根本不用瞎折腾,几个极简公式,就能全自动提取字符串里的数字。不管数字在最前、最后、还是分散在文本中间,通通一秒搞定!

一、提取字符串前面的数字

公式解析:

1.ROW($1:$99)

生成数组:{1;2;3;;99},依次截取左边 位、位…99 位。

2.LEFT(A1,ROW($1:$99))

批量截取:左字符、左 字符… 左 99 字符,生成文本数组。

-LEFT(...)

文本数字变负数数值;纯文本内容转错误值#VALUE!

3.LOOKUP (,- 数组)

LOOKUP 忽略错误值,自动匹配最后一个有效负数,再加负号变回原正数。

4.$1:$99

行被锁,下拉公式时永远是1~99,不会变成 2~1003~101

二、提取字符串后面的数字

公式解析:

1.RIGHT:从右边挨个截取

 1 位、截 位、截 ……

2.负号 -

数字→ 变负数

有文字→ 报错

3.LOOKUP

跳过所有报错,只拿最后一个有效负数

最前面负号 -

负数变回正数→ 就是你要的末尾数字

三、提取任意位置字符串的数字(适用于Excel 365 / WPS 最新版)

公式解析:

功能:把单元格里所有数字都抠出来,连在一起。

1.MID:把字符串拆成一个一个字

2.--:是数字就留下,不是数字就删掉

3.CONCAT:把留下的数字拼在一起

旧版 Excel 用这个(兼容所有版本)=SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$99),1))*ROW($1:$99),),ROW($1:$99))+1,1)*10^ROW($1:$99)/10)

有空可以试试,反正闲着也是闲着。