在Excel中删除两个下划线之间的文本的公式?

时间:2018-07-02 19:05:02

标签: excel vba formula

单元格A2中的值为“ Blabla_Donkey_Rhino”。我想要一个公式,该公式删除两个下划线和一个下划线之间的文本,以返回值“ Blabla_Rhino”

单元格

A2

Blabla_Donkey_Rhino

Desired Output

Blabla_Rhino

2 个答案:

答案 0 :(得分:0)

如果您不需要“替换” vba替代方法,则可以尝试使用以下方式将文本的开头和结尾部分串联起来:

=LEFT(A2,FIND("_",A2))&RIGHT(A2,LEN(A2)-FIND("_",A2,FIND("_",A2)+1))

这与您的示例相同,但它不仅删除了两个下划线之间的文本,还删除了第二个下划线。

要仅删除下划线之间的文本,请使用以下内容:

=LEFT(A2,FIND("_",A2))&RIGHT(A2,LEN(A2)-FIND("_",A2,FIND("_",A2)+1)+1)

答案 1 :(得分:0)

VBA这个简单的UDF

Function firstAndThird(str as string) as string
    firstAndThird = split(str,"_")(0) & "_" & split(str,"_")(2)
End Function

将代码放入模块并从工作表中调用:

=firstAndThird(A2)

enter image description here


如果您具有Office 365 Excel,则可以将TEXTJOIN用作数组公式:

=TEXTJOIN("_",,TRIM(MID(SUBSTITUTE(A2,"_",REPT(" ",99)),{1,198},99)))

作为数组公式,退出编辑模式时,请按Ctrl-Shift-Enter而不是Enter确认。

enter image description here