Excel函数,提取特定字符左边或右边的所有字符

在 Excel 中,提取某个特定字符(例如“-”、“@”或空格)左边或右边的所有字符,通常需要组合使用 LEFT / RIGHT 函数和 FIND (或 SEARCH) 函数。

假设单元格 A1 的内容是:"北京-朝阳区-建国路"

我们要提取分隔符 "-" 左边或右边的内容。


1. 提取“左边”的所有字符

场景:提取第一个 "-" 左边的内容(结果应为 "北京")。

逻辑

  1. FIND 找到 "-" 的位置。
  2. LEFT 从左边开始提取,长度为 "-" 的位置减 1(因为不需要包含 "-" 本身)。

公式:

=LEFT(A1, FIND("-", A1) - 1)
  • 解析
    • FIND("-", A1) 返回 3(因为 “-” 在第3位)。
    • 3 - 1 = 2
    • LEFT(A1, 2) 提取前2个字符 -> "北京"

注意:如果文本中可能有多个分隔符,这个公式只针对第一个分隔符生效。


2. 提取“右边”的所有字符

这里分两种情况:提取最后一个分隔符右边的内容,还是第一个分隔符右边的内容。

情况 A:提取“最后一个”分隔符右边的内容(最常用)

场景:提取最后一个 "-" 右边的内容(结果应为 "建国路")。

由于 FIND 只能从左往右找,我们需要一点技巧来定位“最后一个”。

通用公式(适用于所有 Excel 版本):

=RIGHT(A1, LEN(A1) - FIND("@", SUBSTITUTE(A1, "-", "@", LEN(A1)-LEN(SUBSTITUTE(A1, "-", "")))))

(注:这里用 “@” 作为一个临时的、原文本中不存在的占位符)

逻辑解析(稍微复杂,建议直接套用):

  1. LEN(A1)-LEN(SUBSTITUTE(A1, "-", "")):计算 "-" 出现的总次数。
  2. SUBSTITUTE(..., "-", "@", 次数):把最后一个 "-" 替换成 "@"
  3. FIND("@", ...):找到这个 "@" 的位置(即原最后一个 "-" 的位置)。
  4. LEN(A1) - 位置:计算右边剩余的长度。
  5. RIGHT:提取右边部分。

🚀 简便方法(如果你使用的是 Excel 2019 或 Office 365):

直接使用 TEXTAFTER 函数,它可以指定从后往前找。

=TEXTAFTER(A1, "-", -1)
  • -1 表示从最后一个分隔符开始提取后面的内容。简单又强大!

情况 B:提取“第一个”分隔符右边的所有内容

场景:提取第一个 "-" 右边的所有内容(结果应为 "朝阳区-建国路")。

公式:

=RIGHT(A1, LEN(A1) - FIND("-", A1))
  • 逻辑
    • FIND("-", A1) 找到第一个 “-” 的位置(比如 3)。
    • LEN(A1) 是总长度(比如 9)。
    • 9 - 3 = 6(右边剩余的长度)。
    • RIGHT 提取右边 6 个字符。

进阶版(不包含分隔符):上面的公式已经排除了分隔符。如果你想保留分隔符,就把 - FIND 改为 + 1 - FIND 等调整,但通常我们都不想要分隔符。


3. 特殊场景:提取两个分隔符中间的内容

场景:提取第一个 "-" 和第二个 "-" 之间的内容(结果应为 "朝阳区")。

这需要结合 MID(你上一个问题学的):

=MID(A1, FIND("-", A1) + 1, FIND("-", A1, FIND("-", A1) + 1) - FIND("-", A1) - 1)
  • 开始位置:第一个 "-" 位置 + 1。
  • 长度:(第二个 "-" 位置) – (第一个 "-" 位置) – 1。

4. 总结速查表

假设分隔符是 -,文本在 A1

需求 推荐公式 (兼容旧版) 推荐公式 (Office 365/2019+) 结果示例 (北京-朝阳-建国)
左边 (第一个符号前) =LEFT(A1, FIND("-",A1)-1) =TEXTBEFORE(A1, "-") 北京
右边 (第一个符号后) =RIGHT(A1, LEN(A1)-FIND("-",A1)) =TEXTAFTER(A1, "-") 朝阳-建国
右边 (最后一个符号后) (见上方长公式) =TEXTAFTER(A1, "-", -1) 建国
中间 (第1和第2之间) =MID(A1, FIND("-",A1)+1, FIND("-",A1,FIND("-",A1)+1)-FIND("-",A1)-1) =TEXTBETWEEN(A1, "-", "-") 朝阳

💡 小贴士

  1. 大小写敏感FIND 是区分大小写的。如果不区分(比如找 “a” 或 “A” 都可以),请将 FIND 换成 SEARCH
    • 例如:=LEFT(A1, SEARCH("-", A1) - 1)
  2. 错误处理:如果单元格里没有那个分隔符,公式会报错 #VALUE!。可以套上 IFERROR
    • =IFERROR(LEFT(A1, FIND("-",A1)-1), A1) (如果没有分隔符,就返回原内容)。
  3. 新版函数:如果你的 Excel 版本较新(Office 365, Excel 2019+),强烈建议使用 TEXTBEFORE, TEXTAFTER, TEXTBETWEEN,它们比老式的嵌套公式易读且不易出错。

 

公式应用:判断尺寸是否超差。

=IF(F10="", "", IFERROR(IF(AND(F10>=--LEFT($D10,FIND("~",$D10)-1), F10<=--RIGHT($D10,LEN($D10)-FIND("~",$D10))), "OK", "错误"), "格式错误"))

 

注:D10为尺寸范围,示例:34~36;F10为尺寸实测值。

本站部分内容搜集自公共网络,如侵犯了您的合法权利,请联系:info@daomen.net。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2025年1月13日 22:51
下一篇 2026年4月7日 13:23

相关推荐

发表回复

登录后才能评论
联系

微信/QQ:97523900

关于 论坛
分享本页
返回顶部