ARTICLE · 1204441
Excel技巧|文本提取三兄弟:LEFT、RIGHT、MID,想拆什么拆什么
Excel技巧|文本提取三兄弟:LEFT、RIGHT、MID,想拆什么拆什么做表格的时候,经常遇到这种情况: 一列数据混在一起,想从中提取某一部分。比如从“张三-销售部”里提取“张三”,从身份证号里提取出生日期,从地址里提取城市名。 手动复制粘贴?几百条数据能累死人。用分列?格式不统一就搞不定。 今天讲文本提取三兄弟:LEFT、RIGHT、MID。三个函数各管一个方向,学会之后,从任何文本里提取任何内容都不在话下。 语法:=LEFT(文本, 提取几位) 从文本的最左边开始,提取指定数量的字符。 A列是姓名,想提取姓氏(假设都是单姓): =LEFT(A2, 1) 从左边取1位,“张三”变成“张”。 A列是手机号“13800138000”,想提取前3位: =LEFT(A2, 3) 结果是“138”。 A列是“HR-001”,想提取“HR”: =LEFT(A2, 2) 结果是“HR”。 关键点:第二个参数是“提取几位”,不是“提取到第几位”。写1就是取1个字符,写3就是取3个字符。 语法:=RIGHT(文本, 提取几位) 从文本的最右边开始,提取指定数量的字符。 A列是手机号“13800138000”,想提取后4位: =RIGHT(A2, 4) 结果是“8000”。 A列是身份证号,想提取后4位做校验: =RIGHT(A2, 4) A列是文件名“报表.xlsx”,想提取“xlsx”: =RIGHT(A2, 4) 结果是“xlsx”。 注意:RIGHT和LEFT一样,第二个参数是“提取几位”,从右边数。 语法:=MID(文本, 从第几位开始, 提取几位) 从文本的指定位置开始,提取指定数量的字符。这是三兄弟里最灵活的一个。 A列是身份证号“110101199001011234”,出生日期在第7到14位: =MID(A2, 7, 8) 从第7位开始,取8位,结果是“19900101”。 A列是“HR-2026-001”,想提取中间的“2026”: =MID(A2, 4, 4) 从第4位开始,取4位,结果是“2026”。 A列是“陕西省西安市雁塔区科技路18号”,想提取“西安市”: =MID(A2, 4, 3) 从第4位开始,取3位,结果是“西安市”。 关键点:MID有三个参数,中间那个是“从第几位开始”,第三个是“取几位”。两个数字别搞混。 单个函数威力有限,组合起来才能解决复杂问题。 A列是“张三-001”,想提取“张三”: =LEFT(A2, FIND("-", A2)-1) FIND找到“-”在第几位,减1就是姓名的长度,LEFT从左边取这么多位。 A列是“张三-001”,想提取“001”: =RIGHT(A2, LEN(A2)-FIND("-", A2)) LEN算出总长度,减去“-”的位置,就是工号的长度,RIGHT从右边取这么多位。 A列是“陕西省[西安市]雁塔区”,想提取方括号里的“西安市”: =MID(A2, FIND("[", A2)+1, FIND("]", A2)-FIND("[", A2)-1) 从“[”后面一位开始,取到“]”前面一位。 =LEFT(A2, 0) 返回空值。第二个参数不能是0,至少写1。 “张 三”用LEFT取1位,得到的是“张”还是“张 ”?如果空格在前面,取到的是空格。用TRIM先清理一下:=LEFT(TRIM(A2), 1)。 如果单元格是数字格式(比如日期、手机号),LEFT/RIGHT/MID提取出来的是文本,不能直接参与计算。需要计算的话,外面套VALUE转换。 =LEFT(A2, FIND("-", A2)-1),如果A2里没有“-”,FIND会返回错误。用IFERROR包一下:=IFERROR(LEFT(A2, FIND("-", A2)-1), A2)。 下次需要从一列数据里提取某部分内容,先想想三兄弟能不能搞定。大部分场景,它们比手动复制粘贴快100倍。















































































