在 Excel 中,提取某个特定字符(例如“-”、“@”或空格)左边或右边的所有字符,通常需要组合使用 LEFT / RIGHT 函数和 FIND (或 SEARCH) 函数。
假设单元格 A1 的内容是:"北京-朝阳区-建国路"
我们要提取分隔符 "-" 左边或右边的内容。
1. 提取“左边”的所有字符
场景:提取第一个 "-" 左边的内容(结果应为 "北京")。
逻辑:
- 用
FIND找到"-"的位置。 - 用
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, "-", "")))))
(注:这里用 “@” 作为一个临时的、原文本中不存在的占位符)
逻辑解析(稍微复杂,建议直接套用):
LEN(A1)-LEN(SUBSTITUTE(A1, "-", "")):计算"-"出现的总次数。SUBSTITUTE(..., "-", "@", 次数):把最后一个"-"替换成"@"。FIND("@", ...):找到这个"@"的位置(即原最后一个"-"的位置)。LEN(A1) - 位置:计算右边剩余的长度。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, "-", "-") |
朝阳 |
💡 小贴士
- 大小写敏感:
FIND是区分大小写的。如果不区分(比如找 “a” 或 “A” 都可以),请将FIND换成SEARCH。- 例如:
=LEFT(A1, SEARCH("-", A1) - 1)
- 例如:
- 错误处理:如果单元格里没有那个分隔符,公式会报错
#VALUE!。可以套上IFERROR:=IFERROR(LEFT(A1, FIND("-",A1)-1), A1)(如果没有分隔符,就返回原内容)。
- 新版函数:如果你的 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。
微信扫一扫