是不是每次碰到文本夹杂数字的数据,都只能一个个手动复制删减?
耗时、低效、还容易出错!其实 Excel 根本不用瞎折腾,几个极简公式,就能全自动提取字符串里的数字。不管数字在最前、最后、还是分散在文本中间,通通一秒搞定!
一、提取字符串前面的数字

公式解析:
1.ROW($1:$99)
生成数组:{1;2;3;…;99},依次截取左边 1 位、2 位…99 位。
2.LEFT(A1,ROW($1:$99))
批量截取:左1 字符、左 2 字符… 左 99 字符,生成文本数组。
-LEFT(...)
文本数字变负数数值;纯文本内容转错误值#VALUE!。
3.LOOKUP (,- 数组)
LOOKUP 忽略错误值,自动匹配最后一个有效负数,再加负号变回原正数。
4.$1:$99
行被锁,下拉公式时永远是1~99,不会变成 2~100、3~101。
二、提取字符串后面的数字

公式解析:
1.RIGHT:从右边挨个截取
截 1 位、截 2 位、截 3 位……
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)
有空可以试试,反正闲着也是闲着。
夜雨聆风