乐于分享
好东西不私藏

比“分列”更好用!这两个新函数,处理了Excel 90%的文本提取需求

比“分列”更好用!这两个新函数,处理了Excel 90%的文本提取需求

昨天给大家分享了 TEXTSPLIT 函数,今天带来 TEXTSPLIT 的两个兄弟:TEXTAFTER 和 TEXTBEFORE 函数。

它们的核心技能就一句话:按某个分隔符,把文本切开,然后取前面或后面那一段

像极了吃西瓜,你只拿“切开后你想要的那半边”:

  • TEXTBEFORE:在某个分隔符处切一刀,拿走刀口前面那半边
  • TEXTAFTER:同一刀,拿走刀口后面那半边

可以把它俩看作是:TEXT+BEFORE 和 TEXT+ AFTER ,方便理解

一、这俩函数到底是干啥的

  1. 功能一句话

    从文本中,返回某个分隔符“之前"或”之后"的内容。

  1. 语法
=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#办公效率