昨天给大家分享了 TEXTSPLIT 函数,今天带来 TEXTSPLIT 的两个兄弟:TEXTAFTER 和 TEXTBEFORE 函数。
它们的核心技能就一句话:按某个分隔符,把文本切开,然后取前面或后面那一段。
像极了吃西瓜,你只拿“切开后你想要的那半边”:
- TEXTBEFORE:在某个分隔符处切一刀,拿走刀口前面那半边
- TEXTAFTER:同一刀,拿走刀口后面那半边
可以把它俩看作是:TEXT+BEFORE 和 TEXT+ AFTER ,方便理解

一、这俩函数到底是干啥的
- 功能一句话
从文本中,返回某个分隔符“之前"或”之后"的内容。
- 语法
=TEXTBEFORE(text, delimiter, [instance_num], [match_mode],[match_end], [if_not_found])
一共有6个参数,翻译成人话:
- text:原文本 (要切的西瓜)
- delimiter:分隔符(比如 “-” 或 “@” 或 “ ”,也可以是任何文字)
- instance_num(可选):第几次出现分隔符(默认第 1 次)
- match_mode(可选):是否区分大小写(0 区分;1 不区分)
- match_end(可选):是否从文本末尾匹配(0 从前往后;1 从后往前)
- if_not_found(可选):找不到分隔符时返回什么(报错 #N/A的时候填它)
二、最常用的场景
1)取一级地址:省或市

如图,只要地址里包含了“省”或者“市”,一个公式就可以全部搞定:
=TEXTBEFORE(A2,{"省","市"})注意: 同TextSplit函数一样,TextBefore/TextAfter函数的分隔符也可以使用数组形式
2)邮箱:取用户名 / 取域名

取 @ 前面的用户名:
=TEXTBEFORE(A2,"@")取 @ 后面的域名:
=TEXTAFTER(A2,"@")以前:LEFT、FIND、LEN 一家三口齐上阵现在:一个函数,解决一条命题
当然,你可以继续用LEFT+FIND函数:
=LEFT(A2,FIND("@",A2)-1) #取用户名=RIGHT(A2,LEN(A2)-FIND("@",A2)) #取域名
3)地址/层级:市-区-街道
举例:广州市-天河区-猎德街道

取市(第一个 - 之前):
=TEXTBEFORE(A2,"-")取区(第二个 - 之后):
=TEXTAFTER(A2,"-",2)取街道(夹在中间那段,最烦人,但也能治):
=TEXTBEFORE(TEXTAFTER(A2,"-"),"-")中间那段为什么总是最难?因为它最像职场:上有领导(前半段),下有同事(后半段),你夹中间。
当然,你也可以继续用LEFT+FIND+MID函数
#取市=LEFT(A2,FIND("-",A2)-1)#取区=MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1)#取街道=MID(A2,FIND("-",A2,FIND("-",A2)+1)+1,LEN(A2))
看了上面MID+FIND函数的多重嵌套公式,再比较TEXTBEFORE+TEXTAFTER函数,用哪个更好这下你心里有数了吧!
这时候你会发现:TEXTBEFORE/TEXTAFTER 的嵌套,像剥洋葱——越剥越清楚,越剥越想哭(但这次是感动)。
4)订单号/编码:按第 N 次分隔符截取
订单号(A2):CN-SH-202601-00038
取前两段(到第 2 个 - 为止):CN-SH
=TEXTBEFORE(A2,"-",2)取第 2 个 - 后面的所有内容:202601-0038
=TEXTAFTER(A2,"-",2)三、常见翻车现场(以及如何优雅收场)
错误 1:分隔符是“空格”,你以为写空就行不行。空格要写成:
=TEXTBEFORE(A2," ")错误 2:分隔符不存在,整列 #N/A 像事故现场加上 if_not_found 参数,让世界和平一点:
=TEXTAFTER(A2,"-",,,, "")错误 3:想取最后一段,却总是取到第一段记住这句咒语:最后一个 → match_end = 1
=TEXTAFTER(A2,"-",,0,1)错误 4:版本问题这俩函数属于较新的Excel(Excel2021及更高版本,WPS也可用)
四、TEXTBEFORE/TEXTAFTER 能替代哪些“古早折磨”?
以前常用组合拳:
LEFT + FIND
MID + FIND
RIGHT + LEN - FIND
SUBTITUTE + FIND
现在很多切片需求都可以:
- 一行公式解决
- 更直观
- 更不容易写错
- 维护起来不想打人
它们特别适合用于:
邮箱、URL、订单号解析 以某字符/词语分隔的编码拆解 文件名/路径处理 地址/标签/备注信息提取 清洗数据前置处理(配合 TEXTSPLIT 更香)
五、跟 TEXTSPLIT 的关系:三兄弟联动,天下无敌
- TEXTSPLIT:把文本“切成数组”(分成很多段)
- TEXTBEFORE:只要切开的“前半段”
- TEXTAFTER:只要切开的“后半段”
如果你只需要其中一段,用 BEFORE/AFTER 更简单;如果你要全部分列,TEXTSPLIT 更合适。
怎么样,是不是又学会了一点点!~
快转发给你的朋友和同事,一起提高工作效率!
TextSplit函数的详细用法,请查阅上一篇文章:

#TEXTAFTER#TEXTBEFORE#分列函数#TEXTSPLIT#数据拆分#Excel技巧#数据清洗#Office365#办公效率
夜雨聆风