摘要:本文系统讲解 Excel 文本拆分与提取的四大核心函数——LEFT、RIGHT、MID、TEXTSPLIT,并配合 LEN、FIND、SUBSTITUTE 等辅助函数,覆盖姓名拆分、身份证出生日期提取、省市区拆分、括号内容提取、订单号提取等 6 个高频实战场景。同时介绍 TEXTSPLIT 的多行多列进阶用法、老版本替代方案,并总结新手最容易踩的 6 个坑,帮你一次搞定所有文本拆分难题。

前五期我们讲了:
- 01:SUMIFS+COUNTIFS,多条件统计
- 02:VLOOKUP+IFERROR+MATCH,跨表取数
- 03:IFS+IFERROR,条件判断
- 04:SUMPRODUCT,复杂统计
- 05:DATEDIF+EDATE+EOMONTH,日期计算
统计、查找、判断、日期都齐了。
但日常工作中,还有一类数据特别让人头疼:文本。
姓名要拆成姓和名,地址要拆出省市区,订单号要提取中间几位,括号里的备注要单独拿出来……
很多人还在手动复制、粘贴、删字符,数据一多就崩溃。
其实,Excel 早就给你准备好了文本处理的“四件套”:
LEFT + RIGHT + MID + TEXTSPLIT。
一句话记住它们:
- LEFT:从左边取几个字符
- RIGHT:从右边取几个字符
- MID:从中间某个位置取几个字符
- TEXTSPLIT:按分隔符一键拆分,新版 Excel 神器
再配合 LEN、FIND、SUBSTITUTE,几乎能搞定所有文本拆分提取。
今天一次讲透。
一、先认识四个核心函数
1. LEFT:从左边取
语法:
=LEFT(文本, 取几个字符)
比如:
=LEFT("A001", 1)
返回 A。
如果省略第二个参数,默认取 1 个字符:
=LEFT("A001")
也返回 A。
2. RIGHT:从右边取
语法:
=RIGHT(文本, 取几个字符)
比如:
=RIGHT("A001", 3)
返回 001。
3. MID:从中间取
语法:
=MID(文本, 从第几位开始, 取几个字符)
比如:
=MID("A001", 2, 3)
返回 001。
注意:Excel 里字符位置从 1 开始数,不是从 0。
4. TEXTSPLIT:按分隔符拆分
这是新版 Excel 和 WPS 才有的函数。
语法:
=TEXTSPLIT(文本, 列分隔符, 行分隔符, 是否忽略空值, 是否区分大小写)
最常用的是前两个参数:
=TEXTSPLIT(A2, "-")
如果 A2 是 "张三-销售部-13800000001",就会拆成三列:
张三、销售部、13800000001。
老版本没有 TEXTSPLIT,可以用“数据 → 分列”代替,或者用 MID+FIND 组合。
5. 四个函数对比一览
看完上面的介绍,可能有点眼花缭乱。别急,下面这张表帮你快速区分和选择:
| LEFT | =LEFT(文本, 取几个字符) | 从左边取指定个数的字符 | 提取前缀、姓、省份等开头固定内容 | =LEFT("A001", 1) → A |
| RIGHT | =RIGHT(文本, 取几个字符) | 从右边取指定个数的字符 | 提取后缀、尾号、区号等结尾固定内容 | =RIGHT("A001", 3) → 001 |
| MID | =MID(文本, 从第几位开始, 取几个字符) | 从中间指定位置开始取指定个数 | 提取身份证出生日期、订单号中间段等 | =MID("A001", 2, 3) → 001 |
| TEXTSPLIT | =TEXTSPLIT(文本, 列分隔符, 行分隔符) | 按分隔符一键拆分成多列/多行 | 拆分姓名-部门-电话、逗号分隔列表等 | =TEXTSPLIT(A2, "-") → 拆成三列 |
怎么选?记住一句话:
- 取开头 → 用 LEFT
- 取结尾 → 用 RIGHT
- 取中间某一段 → 用 MID
- 按分隔符批量拆 → 用 TEXTSPLIT
二、辅助函数:LEN、FIND、SUBSTITUTE
光有 LEFT/RIGHT/MID 还不够,因为很多时候你不知道该取几位。
这时候就需要辅助函数来“定位”。
1. LEN:算长度
=LEN(A2)
返回文本有几个字符。
2. FIND:找位置
=FIND("-", A2)
返回 – 在 A2 中第一次出现的位置。
注意:FIND 区分大小写,SEARCH 不区分。日常用 FIND 就够。
3. SUBSTITUTE:替换内容
=SUBSTITUTE(A2, "-", "")
把 A2 里的 – 全部替换成空,相当于删除。
这三个函数配合 LEFT/RIGHT/MID,就能应对绝大多数拆分场景。
三、实战:6个常见拆分场景
1. 拆分姓名:姓和名
假设 A2 是 "张三",想拆成姓和名。
姓:
=LEFT(A2, 1)
名:
=RIGHT(A2, LEN(A2)-1)
如果复姓(比如“欧阳娜娜”),就不能简单取 1 位。
可以用 FIND 找常见复姓,但日常场景取 1 位够用。
2. 提取身份证出生日期
身份证号 A2 是 18 位,出生日期在第 7 到 14 位。
=MID(A2, 7, 8)
返回 19900101。
想变成日期格式:
=DATE(MID(A2,7,4), MID(A2,11,2), MID(A2,13,2))
3. 拆分地址:省市区
假设 A2 是 "浙江省杭州市西湖区文一西路",想按“省”“市”“区”拆。
提取省:
=LEFT(A2, FIND("省", A2))
提取市:
=MID(A2, FIND("省", A2)+1, FIND("市", A2)-FIND("省", A2))
提取区:
=MID(A2, FIND("市", A2)+1, FIND("区", A2)-FIND("市", A2))
逻辑就是:用 FIND 找到关键字位置,再用 MID 截取中间部分。
4. 提取括号里的内容
A2 是 "张三(销售部)",想提取“销售部”。
=MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1)
注意中文括号和英文括号不一样,FIND 里要写对。
5. 按分隔符拆分:TEXTSPLIT 一键搞定
A2 是 "张三-销售部-13800000001"。
=TEXTSPLIT(A2, "-")
直接拆成三列。
如果分隔符是逗号:
=TEXTSPLIT(A2, ",")
如果既有逗号又有分号,可以写多个分隔符:
=TEXTSPLIT(A2, {",", ";"})
TEXTSPLIT 的结果会自动溢出到右边单元格,不用下拉。
6. 提取订单号中间几位
订单号 A2 是 "DD20240912001",想提取中间的日期 20240912。
=MID(A2, 3, 8)
从第 3 位开始,取 8 位。
四、TEXTSPLIT 进阶:拆成多行、多列
TEXTSPLIT 不止能按列拆,还能按行拆。
比如 A2 是 "张三,李四,王五",想拆成一列:
=TEXTSPLIT(A2, , ",")
第二个参数是列分隔符,留空;第三个参数是行分隔符,写 ","。
结果会纵向溢出。
如果同时有列分隔符和行分隔符,也能一次拆成表格。
五、老版本没有 TEXTSPLIT 怎么办?
两个办法:
数据 → 分列
选中列 → 数据 → 分列 → 按分隔符 → 选“-”或“,” → 完成。
用 MID+FIND 组合
如果分隔符位置固定,用 MID 直接截取。
如果不固定,用 FIND 找位置,再算长度。
虽然麻烦一点,但老版本也能用。
六、新手最容易踩的6个坑
1. 中英文标点混用
中文逗号 , 和英文逗号 , 不一样。
FIND 里写错,就找不到位置。
TEXTSPLIT 里写错,就拆不开。
2. 空格和不可见字符
从系统导出的文本,经常带空格或不可见字符。
用 TRIM 清空格,用 CLEAN 清不可见字符。
=TRIM(A2)
=CLEAN(A2)
3. 数字被当成文本
"001" 和 1 看起来差不多,但格式不同。
用 LEFT/RIGHT 取出来的是文本,如果要参与计算,用 VALUE 转换。
4. FIND 找不到会报 #VALUE!
如果文本里没有要找的字符,FIND 会报错。
可以套 IFERROR:
=IFERROR(FIND("-", A2), 0)
5. MID 的位置算错
Excel 字符位置从 1 开始。
MID(A2, 1, 3) 取的是第 1 到第 3 个字符。
如果从 0 开始算,结果就错了。
6. TEXTSPLIT 版本限制
TEXTSPLIT 只在 Excel 365、Excel 2021、WPS 新版里能用。
老版本打开会显示 #NAME?。
发给别人之前,最好确认对方版本,或者直接分列。
七、总结
记住这四句话:
- 从左边取:LEFT
- 从右边取:RIGHT
- 从中间取:MID
- 按分隔符拆:TEXTSPLIT
再配合:
- LEN:算长度
- FIND:找位置
- SUBSTITUTE:替换删除
- TRIM / CLEAN:清空格和不可见字符
组合起来:
=LEFT(A2, 1)
=RIGHT(A2, LEN(A2)-1)
=MID(A2, FIND("-", A2)+1, 3)
=TEXTSPLIT(A2, "-")
姓名、地址、身份证、订单号、括号备注,全都能拆。
学会 LEFT+RIGHT+MID+TEXTSPLIT,拆分提取,再也不求人。







