在日常Excel数据处理中,经常会遇到一个单元格里既有中文又有数字的情况。比如“深圳影盟公司52007”,需要把右侧的数字提取出来。数据源格式不规整时,很多新手第一反应是用分列或CTRL+E,但这些方法遇到数据更新后往往需要重新操作。今天分享一个各版本通用、且能自动更新的公式。

一、提取右侧数字的通用公式

A2单元格内容是“深圳影盟公司52007”,在B2输入以下公式:

=-LOOKUP(1, -RIGHT(A2, ROW($1:$10)))

按回车即可提取出数字“52007”。

字符提取的模式化用法,一个公式搞定混合内容提取-天天办公网
提取右侧数字的通用公式

二、公式拆解与原理

ROW($1:$10) 生成1到10的序号。RIGHT(A2, ROW($1:$10)) 从A2最右侧分别提取1到10个字符,得到一组文本结果。负号 – 将纯数字转为负数,包含文字的无法转换直接返回错误值。最终得到的内存数组中,只有数字变成了负数,其他全是错误值。

LOOKUP(1, …) 用1作为查找值。LOOKUP会自动忽略错误值,在剩余数值中查找1。由于找不到1,它会返回比1小且最接近1的数值,即最后一个负数。最外层的负号把负数转正,得到最终结果“52007”。

三、提取左侧数字的变形

如果数字在左侧,比如“52007深圳影盟公司”,把RIGHT换成LEFT即可:

=-LOOKUP(1, -LEFT(A2, ROW($1:$10)))

四、使用注意

公式中的 ROW($1:$10) 表示最多提取10位数字。如果数字长度可能超过10位,可以把10改大,比如 ROW($1:$20)。超过实际数字长度不影响结果,LOOKUP会自动取最后一个有效值。

五、总结

字符提取的模式化用法的核心结构是:=-LOOKUP(1, -提取函数(目标单元格, ROW($1:$N)))。RIGHT提取右侧数字,LEFT提取左侧数字,N是最大提取长度。它不需要数组三键,不需要高版本函数,掌握这一个套路,混合内容提取不再是难题。