Excel怎么提取某个符号前后的文字

用FIND定位符号位置,再配合LEFT、MID取出符号前或后的文字,并处理符号多次出现、找不到符号等情况。附公式示例、操作步骤和逐项核对表。

很多人手里有一列"张三-销售部-2024"这样的数据,只想留下"-"前面的姓名,或者只要最后的年份。这类问题本质上是表格公式的问题,不是文档导出的问题。只要会用几个文本函数,就能把符号前后的内容单独拆出来。

这篇文章写给经常整理表格、从一段文字里摘取信息的人。读完后,你可以针对符号只出现一次、出现多次、找不到符号这三种情况,分别写出提取公式,并知道结果出错时该检查哪里。下面的示例都用同一个例子:A2 单元格里是"张三-销售部-2024",分隔符是英文短横线"-"。

怎么提取符号前后的文字?一句话结论:先用 FIND 找到符号位置,再用 LEFT 或 MID 截取,新版 Excel 可直接用 TEXTBEFORE 和 TEXTAFTER。

你的情况推荐做法原因
符号只出现一次,要符号前面的内容LEFT 加 FIND所有常见版本都支持,写法固定
符号只出现一次,要符号后面的内容MID 加 FIND从符号后一位开始截取,不需要计算总长度
符号出现多次,要最后一个符号前后的内容先算出最后一个符号的位置,再用 LEFT 或 MID 截取直接用 FIND 只能找到第一个符号,结果会截错
使用新版 Excel,想一步写完TEXTBEFORE、TEXTAFTER语法简短,但旧版本没有这两个函数
需要处理一个文件夹里的多个表格先用 Power Query 合并数据,再套用上面的公式手工复制粘贴容易漏行,合并后公式只需写一次

开始之前:先确认这几点

先确认符号的字符。 表格里的"-"可能是英文短横线,也可能是中文输入法下的全角"-"。两者在 FIND 看来是不同的字符,公式会找不到。简单的办法是把符号从原文复制到公式里,而不是手动敲一个。

先看符号出现几次。 同一个单元格里如果有多个"-",前后截取的位置会不一样。"前面的内容"通常指第一个符号之前,"后面的内容"则要看你要的是第一个符号之后的全部,还是最后一个符号之后的部分。先想清楚要哪一段,再动手写公式。

确认是否有空格。 符号两侧如果有多余空格,提取出来的文字前后也会带空格,看起来一样,却会影响后面的排序和查找。可以用 TRIM 函数包一层。

确认 Excel 版本。 TEXTBEFORE 和 TEXTAFTER 只在较新的版本中可用。如果你不确定,就先用 LEFT、MID 加 FIND 的写法,它在任何版本里都能用。

确认数据量。 只有几行时,手动写一条公式再向下填充就够了。数据分散在多个文件里时,先合并再提取,比逐个文件复制更可靠。

在表格里提取符号前后文字的步骤

  1. 打开或新建表格。如果还没有 OmniDoc 桌面客户端,可以到 download.omnidoc.top 下载。在 UniCell 表格中,把原始文字粘贴到 A 列,从 A2 开始。
  2. 在 B2 单元格输入"符号前的公式",例如 =LEFT(A2,FIND("-",A2)-1)。它的作用是找到第一个"-"的位置,再取它前面的字符,结果为"张三"。
  3. 在 C2 单元格输入"符号后的公式",例如 =MID(A2,FIND("-",A2)+1,LEN(A2))。它从第一个"-"之后的字符开始取,结果为"销售部-2024",仍包含第二个符号。
  4. 如果只要最后一个符号后面的部分,在 D2 先算出最后一个符号的位置:=FIND("~",SUBSTITUTE(A2,"-","~",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))。这里的"~"要选一个数据里不会出现的字符。得到的位置数字,再交给 LEFT 或 MID 使用。
  5. 对第一行结果做检查。如果 B2 显示"张三"、C2 显示"销售部-2024",说明公式正确;如果显示错误值,回到前面检查符号是否一致。
  6. 把 B2、C2(以及需要的 D2)向下填充到最后一行,让所有行使用同样的规则。
  7. 如果结果需要长期保存,复制结果列后用"粘贴为数值"的方式覆盖,避免后续删除或移动 A 列时结果跟着出错。
  8. 保存表格,并抽查几行与原文对照,确认截取位置符合预期。

做完后逐项核对

检查项怎么看有问题怎么办
结果是否截对位置对照原文,随机看 3 到 5 行检查符号是否多次出现,改用最后一个符号的写法
是否出现错误值单元格显示为错误提示说明该行没有目标符号,用 IFERROR 包一层,找不到时返回原文
全角半角是否一致符号在原文中看起来是否像英文短横线把公式里的符号换成与原文一致的字符,或用 SUBSTITUTE 统一替换
前后是否有空格把结果放在引号中间观察,或用 LEN 统计长度用 TRIM 包住整个公式
数字是否变样如"001"变成"1",或日期格式错乱提取前把目标列设为文本格式,再粘贴原文

IFERROR 的写法示例是 =IFERROR(LEFT(A2,FIND("-",A2)-1),A2)。这样,没有符号的单元格会直接显示原文,方便你一眼找出特殊行。

📊 核心对比

方法写法示例(取符号前)适合的情况
LEFT 加 FIND=LEFT(A2,FIND("-",A2)-1)符号只出现一次,或只需要第一个符号
SUBSTITUTE 加 FIND先用 SUBSTITUTE 定位最后一个符号符号多次出现,要按最后一个符号分割
TEXTBEFORE=TEXTBEFORE(A2,"-")新版 Excel,想一步写完,并能用负数指定第几个符号
Power Query合并多个表格后,用拆分列功能按符号拆分多个文件、数据量大、需要定期重复执行

❓ 常见问题(FAQ)

1. 符号在中间出现了好几次,怎么只取其中第二个?

可以在 SUBSTITUTE 里指定第几次替换。例如把第二个"-"替换成"~",再用 FIND 找到"~"的位置。新版 Excel 的 TEXTBEFORE 和 TEXTAFTER 也支持指定第几个符号,负数表示从后往前数。

2. 一段话里没有固定符号,怎么提取其中某段文字?

如果这段文字前后有固定的关键词,可以用 SEARCH 找到关键词的位置,再用 MID 截取两个关键词之间的内容。SEARCH 不区分大小写,适合英文文本。它找不到关键词时同样会返回错误,需要用 IFERROR 兜底。

3. 提取出来的是数字,为什么不能直接求和?

提取结果在表格里默认是文本,看起来像数字,却不参与计算。可以用 VALUE 函数转换,或在数据选项里把目标列改成数值格式。转换前先确认数字里没有逗号、空格等非数字字符。

4. 提取多个 Excel 文件中的特定内容,要一个个复制吗?

数据量少时可以逐个处理。文件多时,建议先把所有表格放在同一个文件夹里,用 Power Query 合并成一张表,再对合并后的列套用上面的公式。这样以后数据更新,只需要刷新一次。

5. 符号前后的文字提取后,怎么确认没有漏掉行?

在原表中加一列统计符号个数,再和提取后的行数对照。数量对不上时,通常是某些行的符号写法不同或数据有空行。

📝 总结

提取符号前后的文字,核心是先用 FIND 找到符号位置,再用 LEFT 或 MID 截取;符号多次出现时,先定位最后一个符号。写完公式后,检查全角半角、错误值和空格,就能确保结果可靠。

打开 OmniDoc,处理你的表格文件

更新于 2026-11-04