Excel中提取或删除特定字符前后文本有五种方法:一、FIND+LEFT/RIGHT组合;二、SUBSTITUTE+REPT+TRIM;三、TEXTBEFORE/TEXTAFTER函数;四、Power Query拆分;五、均支持错误处理与多实例匹配。

如果您在 Excel 单元格中需要提取或删除某特定字符(如“-”、“_”、“@”、“.”等)之前或之后的全部文本,则可通过公式组合实现精准截取。以下是多种可行方法:
一、使用 FIND 与 LEFT 提取特定字符前的文本
该方法通过定位目标字符首次出现的位置,再用 LEFT 函数截取其左侧所有字符。适用于仅需保留分隔符前内容的场景。
1、在空白单元格中输入公式:=LEFT(A1,FIND("-",A1)-1)
2、按 Enter 键确认,结果将显示 A1 中“-”左侧的所有字符。
3、若目标字符可能不存在,为避免 #VALUE! 错误,改用:=IFERROR(LEFT(A1,FIND("-",A1)-1),"")
二、使用 FIND 与 RIGHT 提取特定字符后的文本
该方法先计算目标字符位置,再结合 LEN 获取总长度,从而确定右侧需截取的字符数。适用于保留分隔符后全部内容的需求。
1、在空白单元格中输入公式:=RIGHT(A1,LEN(A1)-FIND("-",A1))
2、按 Enter 键确认,结果将显示 A1 中“-”右侧的所有字符。
3、为防止错误,增强容错性,改用:=IFERROR(RIGHT(A1,LEN(A1)-FIND("-",A1)),"")
三、使用 SUBSTITUTE 与 REPT 配合 TRIM 删除特定字符及之后全部文本
该方法将目标字符及其右侧所有内容替换为极长空格,再利用 TRIM 和 LEFT 截断,可规避 FIND 对重复字符的定位局限。
1、在空白单元格中输入公式:=TRIM(LEFT(SUBSTITUTE(A1,"-",REPT(" ",255)),255))
2、按 Enter 键确认,结果即为“-”前的文本,且对含多个“-”的字符串仍稳定有效。
3、如需删除“-”及之前全部内容,改为:=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",255)),255))
四、使用 TEXTBEFORE 和 TEXTAFTER 函数(Excel 365 / 2021)
该方法为原生文本分割函数,语法简洁,支持精确匹配与实例控制,无需嵌套复杂逻辑。
1、提取“@”之前文本:输入公式 =TEXTBEFORE(A1,"@")
2、提取“@”之后文本:输入公式 =TEXTAFTER(A1,"@")
3、若需提取第2个“-”之后的内容,使用实例参数:=TEXTAFTER(A1,"-",2)
五、使用 Power Query 按分隔符拆分并选择列
该方法适用于批量处理大量数据,操作可视化,不依赖公式记忆,且支持多级分隔与逆向选取。
1、选中数据区域,点击「数据」→「从表格/区域」,确认创建表。
2、在 Power Query 编辑器中,右键目标列 → 「拆分列」→ 「按分隔符」→ 选择对应字符,勾选「每遇到一个分隔符拆分」。
3、拆分后,删除不需要的列;若只需保留第1列(分隔符前),则仅保留“Column1”,关闭并上载。










