我在“Dr.”,“Prof.”列中有一组名称,作为前缀。我需要删除这些前缀并仅保留名称。如何在excel 2013单元中删除某些字符
**Column A** **Required only names in column B** Prof.Dr.med.nameX Dr.med.nameXX Prof. name XXX Dr. XX Pr.XX
我在“Dr.”,“Prof.”列中有一组名称,作为前缀。我需要删除这些前缀并仅保留名称。如何在excel 2013单元中删除某些字符
**Column A** **Required only names in column B** Prof.Dr.med.nameX Dr.med.nameXX Prof. name XXX Dr. XX Pr.XX
也许这:
=RIGHT(A1,LEN(A1)-FIND(".",A1))
未测试!
假设我们在列A列出了一个名字。首先,我们列出了不必要的垃圾在C列和B1我们进入:
=TRIM(SUBSTITUTE(A1,INDEX($C$1:$C$6,SUMPRODUCT(ROW($C$1:$C$6)*ISNUMBER(SEARCH($C$1:$C$6,A1)))),""))
抄下:
派生如果你有一个非常短的和固定长度的要删除的子串列表,你可以这样做:
= 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, "")
Obviuosly,你可能要添加一些错误捕获等vba代码
您的* UDF *方法更加灵活。 –
我有一个列表需要从列中删除的前缀 – SSP
前缀列表如何看起来像?你会有一个条目“Prof.Dr.med”吗?或“教授”和“博士”和“med。”作为单独的条目? – zaptask
我不完全理解你的问题。你能显示数据的图像吗? – Brian