You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel字符串处理:如何删除两个下划线间的指定内容并保留其余部分?

可行的Excel公式方案

针对你要删除两个下划线之间特定内容的需求,这里给几个通用的公式,适配不同Excel版本:

方法1:兼容所有Excel版本(无函数版本限制)

假设原字符串在单元格D4,用以下公式:

=LEFT(D4,FIND("_",D4,FIND("_",D4)+1))&RIGHT(D4,LEN(D4)-FIND("@",SUBSTITUTE(D4,"_","@",3)))

原理:

  • 先定位第二个下划线的位置,截取左边部分得到category_topic1_
  • 把第三个下划线替换成特殊符号@,定位这个符号的位置后,截取从第四个下划线开始的右侧部分得到4
  • 拼接两部分就得到目标结果

方法2:用XML拆分筛选(Excel 2013及以上)

如果你的Excel支持FILTERXML函数,可以用这个更简洁的公式:

=TEXTJOIN("_",TRUE,FILTERXML("<a><b>"&SUBSTITUTE(D4,"_","</b><b>")&"</b></a>","//b[position()!=3]"))

原理:

  • 把原字符串按下划线拆分成XML节点
  • 筛选排除第3个节点(也就是你要删除的sports/business这类内容)
  • 用下划线把剩余节点拼接起来

方法3:Excel 365动态数组公式

如果你用的是Excel 365,借助动态数组函数可以更直观:

=TEXTJOIN("_",TRUE,LET(x,TEXTSPLIT(D4,"_"),CHOOSEROWS(x,{1,2,4})))

原理:

  • 用TEXTSPLIT把字符串按下划线拆分成数组
  • 用CHOOSEROWS选取第1、2、4个元素
  • 最后用TEXTJOIN拼接成目标字符串

为什么你之前的公式失败?

你之前的公式依赖特定开头_s来标记位置,但你的中间内容开头并不固定(比如business开头是_b),所以这个公式只能处理以_s开头的中间内容,通用性不足,自然无法适配所有情况。

内容的提问来源于stack exchange,提问作者Jay Tee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:52:11