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

求可清除HTML标签并替换<br>为空格的Excel公式

解决方案

方法1:Excel 365/2021 动态数组公式

如果你的Excel版本支持动态数组函数(TEXTJOIN、SEQUENCE),可以直接用以下公式实现需求,它能适配任意位置的HTML标签:

=TEXTJOIN("",TRUE,IF(MID(SUBSTITUTE(L2,"<br>"," "),SEQUENCE(LEN(SUBSTITUTE(L2,"<br>"," "))),1)="<","",IF(MID(SUBSTITUTE(L2,"<br>"," "),SEQUENCE(LEN(SUBSTITUTE(L2,"<br>"," "))),1)=">","",MID(SUBSTITUTE(L2,"<br>"," "),SEQUENCE(LEN(SUBSTITUTE(L2,"<br>"," "))),1))))

公式逻辑:

  1. 先用SUBSTITUTE(L2,"<br>"," ")把所有<br>标签替换为空格;
  2. 通过SEQUENCE生成字符位置序列,逐个遍历处理后的文本字符;
  3. 跳过所有<和>之间的HTML标签内容,只保留正常文本;
  4. 用TEXTJOIN将剩余字符拼接成最终结果。

方法2:旧版Excel(无动态数组)自定义VBA函数

如果你的Excel版本不支持动态数组,嵌套SUBSTITUTE很难覆盖所有HTML标签场景,建议用自定义函数解决:

  1. 按下Alt+F11打开VBA编辑器;
  2. 右键点击当前工作簿,选择「插入」→「模块」;
  3. 粘贴以下代码:
Function RemoveHTML(ByVal htmlText As String) As String
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    ' 替换<br>为空格
    htmlText = Replace(htmlText, "<br>", " ")
    ' 匹配并移除所有HTML标签(<开头、>结尾的任意内容)
    regEx.Pattern = "<[^>]+>"
    regEx.Global = True
    RemoveHTML = regEx.Replace(htmlText, "")
    ' 自动去除多余连续空格(可选,按需保留)
    RemoveHTML = WorksheetFunction.Trim(RemoveHTML)
End Function
  1. 返回Excel,在目标单元格输入=RemoveHTML(L2)即可得到处理后的文本。

原公式失效原因

你之前的公式仅针对特定位置的<span>标签做了处理,一旦HTML标签的位置、类型(比如<br>在文本中间,或出现其他标签)发生变化,就无法覆盖所有情况。而上面的两种方法,无论是动态数组遍历还是正则匹配,都能适配任意结构的HTML文本。

内容的提问来源于stack exchange,提问作者Ryan Watson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:32:50