如何删除Excel 2013单元格中的某些字符

时间:2016-04-27 12:44:51

标签: excel vba

我在“A”栏中有一组名字,“Dr.”,“Prof。”作为前缀。我需要删除这些前缀并仅保留名称。

**Column A** **Required only names in column B** Prof.Dr.med.nameX Dr.med.nameXX Prof. name XXX Dr. XX Pr.XX

3 个答案:

答案 0 :(得分:2)

假设我们在列 A 中有一个名单列表。首先,我们列出 C 列中不需要的垃圾,然后输入 B1

=TRIM(SUBSTITUTE(A1,INDEX($C$1:$C$6,SUMPRODUCT(ROW($C$1:$C$6)*ISNUMBER(SEARCH($C$1:$C$6,A1)))),""))

并复制下来:

a discussion

派生自enter image description here

答案 1 :(得分:1)

也许这个:

=RIGHT(A1,LEN(A1)-FIND(".",A1))

未经测试!

答案 2 :(得分:1)

如果你要删除一个非常短且固定长度的子串列表,你可以这样做:

= TRIM( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( C1, $A$1, "" ), $A$2, "" ), $A$3; "" ), $A$4, "" ), $A$5, "" ) )

(在C1中使用原始字符串,在A1:A5中删除子字符串的范围)。但这有点乱,但不太灵活。如果您不反对使用vba,我建议编写一个类似于此的UDF:

Function UDF_MultiSubstitute(text As String, old_text_rng As Range, newText As String)

    Dim curCell As Range

    For Each curCell In old_text_rng
        text = Replace(text, curCell.Value, newText)
    Next

    UDF_MultiSubstitute = Trim(text)

End Function

然后您可以调用:

= UDF_MultiSubstitute( C1, $A$1:$A$5, "" )

很明显,您可能希望在vba代码中添加一些错误捕获等