Excel文字截取的核心在于熟练运用LEFT、RIGHT、MID、FIND、LEN等函数进行组合,根据具体需求精确提取字符串中的任意部分,掌握这套方法能覆盖95%以上的文本处理场景。
Excel文字截取函数怎么用?LEFT、RIGHT、MID实战
处理表格数据时,从一串字符里截取固定位置的内容是最常见的需求,Excel为此提供了三个基础函数,绝大多数截取操作都围绕它们展开。
LEFT函数:从左侧开始截取
语法: =LEFT(文本, 截取位数)
- 需求场景:提取产品编号的前4位,或者从地址中取省份名称。
- 操作示例:单元格A1内容为“ABC-2026-001”,要提取前3个字符,公式为
=LEFT(A1,3),结果返回“ABC”。 - 关键点:如果省略截取位数,默认返回第一个字符,若位数超过文本长度,则返回整个文本。
RIGHT函数:从右侧开始截取
语法: =RIGHT(文本, 截取位数)
- 需求场景:提取手机号的后4位,或者从长字符串中截取末尾的日期。
- 操作示例:A1内容为“张三-13800138000”,要提取后11位数字,公式为
=RIGHT(A1,11),结果返回“13800138000”。 - 常见错误:如果文本中包含空格或不可见字符,返回结果可能非预期,此时先使用
TRIM清理。
MID函数:从中间任意位置开始截取
语法: =MID(文本, 起始位置, 截取位数)
- 需求场景:截取身份证号中的出生日期(第7位开始取8位),或者从字符串中间提取产品型号。
- 操作示例:A1内容为“110101199001011234”,用
=MID(A1,7,8)得到“19900101”。 - 注意: 起始位置从1开始计数,如果指定的起始位置大于文本长度,结果为空。
这三个函数可以直接解决很多固定格式的截取问题,但现实中的数据往往不那么规整,需要结合定位函数来动态确定截取位置。
Excel截取特定字符:FIND定位法,精准提取
当需要截取的内容前后有固定分隔符,但长度不固定时,可以用FIND函数先定位字符位置,再配合MID或LEFT完成提取。
利用FIND定位分隔符
语法: =FIND(要查找的字符, 文本, [起始位置])
- 功能:返回指定字符在文本中的首次出现位置(数字)。
- 实战案例:提取邮箱的域名部分,如“user@example.com”,需要截取“@”右侧的内容。
- 先用
FIND("@", A1)找到@的位置,假设结果为5。 - 再用
MID(A1, 5+1, 99)提取之后的所有字符,更精准的做法是结合LEN确定长度,但取一个足够大的数(如99)也能工作。 - 推荐公式:
=MID(A1, FIND("@", A1)+1, LEN(A1)),这样保证提取到末尾。
- 先用
多个分隔符的截取
如果字符串里有多个相同分隔符,北京-朝阳区-望京”,要提取中间部分,可以嵌套使用FIND。
- 第一步:找到第一个“-”的位置,
FIND("-", A1)。 - 第二步:找到第二个“-”的位置,
FIND("-", A1, 第一个位置+1)。 - 第三步:用
MID提取两个位置之间的内容。 - 公式示例:
=MID(A1, FIND("-", A1)+1, FIND("-", A1, FIND("-", A1)+1) - FIND("-", A1) -1)
按字符提取时的常见陷阱
- 如果查找的字符不存在,
FIND会返回错误值#VALUE!,建议用IFERROR包裹,比如=IFERROR(FIND("@", A1), 0)。 - 中英文字符在Excel中都被视为一个字符,但如果是双字节字符(如全角),
FIND同样按一个字符计算,不影响结果,但要注意文本格式的一致性。
实战:Excel文字截取中间几位与去掉前后固定字符
日常工作中,很多需求是截取固定偏移的中间几位,或者去掉前几位和后几位,这类场景有成熟的公式套路。
截取中间几位数字
典型需求:从身份证号中提取出生日期、从手机号中提取前几位或后几位。
- 身份证号出生日期:
=MID(A1, 7, 8),结果如“19900101”,如果需要带分隔符,可用=TEXT(MID(A1,7,8), "0000-00-00"),但注意结果会变成文本,如需真正的日期可嵌套DATE函数。 - 手机号中间四位:
=MID(A1, 4, 4),假设A1为“13812345678”,得到“1234”。 - 行业共识认为,这类固定位置的截取是Excel初学者的第一道门槛,但掌握
MID后就能轻松解决。
去掉前几位或后几位
- 去掉前N位:
=RIGHT(A1, LEN(A1)-N) - 去掉后N位:
=LEFT(A1, LEN(A1)-N) - 同时去掉前后固定位数:
=MID(A1, N+1, LEN(A1)-N-M),其中N为去掉前几位,M为去掉后几位。
实例: 如登录名“user2026”,要去掉前面的“user”,公式为=RIGHT(A1, LEN(A1)-5),如果要去掉后面的“_2026”,公式为=LEFT(A1, LEN(A1)-5)。
使用SUBSTITUTE替换后截取
有时需要截取不固定位置的数字或字符,比如从混合字符串中提取所有数字。
- 常规方法是依次替换非数字字符,但更高效的是用
MID配合数组公式(Excel 365支持TEXTJOIN等),对于旧版Excel,常用=SUBSTITUTE(SUBSTITUTE(...))嵌套,但比较繁琐。 - 推荐新函数:在Excel 365或2021中,直接使用
=TEXTJOIN(, TRUE, IFERROR(MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1)1, "")),可以提取所有数字,但这是数组公式,需要按Ctrl+Shift+Enter(旧版)。
进阶:Excel文字截取公式的容错与效率优化
处理空值或错误值
截取公式依托于文本长度和位置,如果数据源有空值,公式会返回#VALUE!或错误结果。建议在公式外套用IFERROR,将错误替换为自定义值,比如空字符串“”或0。
- 示例:
,如果找不到“-”,直接返回空,避免整个表格显示错误。=IFERROR(LEFT(A1, FIND("-", A1)-1), "")
动态长度截取
当截取长度需要根据其他单元格变化时,不要硬编码数字,而是引用单元格或使用LEN、FIND等函数动态计算。
- A1为文本,B1中指定要截取的长度,公式写为
=LEFT(A1, B1)。 - 这种设计让后期维护更简单,调整参数无需修改公式本身。
批量处理与性能建议
- 一次性对整列使用数组公式(如提取所有数字)会拖慢计算速度,建议先对少量数据测试,确认无误后再应用到整个范围。
- 如果数据量超过10万行,可考虑将截取逻辑放到Power Query中,利用M语言处理,效率更高。不过对于大多数日常场景,Excel函数已经足够。
Q&A:Excel文字截取常见问题解答
Excel文字截取遇到空格或不可见字符怎么办?
用TRIM函数先清理文本,再执行截取。=TRIM(A1)可以清除前后空格和多余空格,如果还保留特殊字符(如换行符),可以再用CLEAN函数,嵌套使用:=LEFT(TRIM(CLEAN(A1)), 5)。
Excel文字截取后怎么转为数字?
用VALUE函数或双负号进行转换。=VALUE(MID(A1,1,3)),或者=--MID(A1,1,3),注意,如果截取的结果包含非数字字符(如字母),转换会返回错误,此时先确认截取结果是否纯数字。
Excel文字截取公式出错,提示“#VALUE!”或“#REF!”怎么排查?
常见原因有三个:一是起始位置大于文本长度,导致MID返回空;二是FIND找不到指定字符;三是引用的单元格被删除或引用无效,排查顺序:先检查文本本身是否包含目标字符,再用LEN确认文本长度,最后确认公式中的参数引用是否正确,使用IFERROR可以提前捕获这些错误并给出友好提示,例如=IFERROR(LEFT(A1,3), "")。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/497865.html



