我在“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
答案 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)))),""))
并复制下来:
答案 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代码中添加一些错误捕获等