根据另一个单元格删除单元格中的特定单词

根据另一个单元格删除单元格中的特定单词

是否有一个公式可以删除单元格中的特定单词,并且该特定单词是对另一个单元格的引用?

例如:

  • 单元格 A1:PETER
  • B1 单元格:贝蒂;玛丽;彼得;约翰;莎莉

我想删除单元格 B1 中的单词“PETER”,但保留其余文本,因为它在单元格 A1 中显示“PETER”

如果 A1 显示“MARY”,则应从 B1 中删除术语“MARY”,但其余部分应保留。

答案1

C1进入:

=SUBSTITUTE(SUBSTITUTE(B1,A1&"; ",""),A1,"")

这将处理“内部” PETER 或“尾随” PETER。

在此处输入图片描述

如果你想“就地”完成此操作(无需使用单独的单元),然后运行这个简短的宏:

Sub DropName()
    Dim s1 As String, s2 As String
    s1 = [A1]
    s2 = [B1]
    s2 = Replace(s2, "; " & s1, "")
    s2 = Replace(s2, s1, "")
    [B1] = s2
End Sub

答案2

如果你有 Excel 2016+ 并且有该TEXTJOIN功能,你可以使用这个数组公式

=TEXTJOIN(";",TRUE,FILTERXML("<t><s>" & SUBSTITUTE(TRIM(SUBSTITUTE(B1,";",CHAR(1))),CHAR(1),"</s><s>") & "</s></t>","//s[not(text()='"&A1&"')]"))

由于这是一个数组公式,因此您需要按住ctrl+shift并点击 来“确认” enter。如果您正确执行此操作,Excel 将{...}在公式栏中看到括号。

公式

  • 创建 XML 文档
  • 用于FILTERXML返回所有不等于的节点PETER
  • TEXTJOIN然后将这些节点重新组合在一起。

在此处输入图片描述

相关内容