Shy*_*thy 31 excel excel-2007 worksheet-function
我在列中有名字.我需要将该列中的姓氏拆分为另一列.
姓氏由右侧的空格分隔.
单元格中的内容A2 = Alistair Stevens和我在单元格中输入公式B2(我需要'Stevens'在单元格中B2)
我尝试使用以下公式:
=RIGHT(A2,FIND(" ",A2,1)-1)
=RIGHT(A2,FIND(" ",A2))
Run Code Online (Sandbox Code Playgroud)
这两个公式都适用于这个单元格但是当我将其填充/复制并粘贴到下面的单元格时,它不起作用.我得到错误的价值!!
A3 -> David Mckenzie
B3 -> Mckenzie
Run Code Online (Sandbox Code Playgroud)
Jea*_*ett 51
这有效,即使有中间名称:
=MID(A2,FIND(CHAR(1),SUBSTITUTE(A2," ",CHAR(1),LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))+1,LEN(A2))
Run Code Online (Sandbox Code Playgroud)
如果你想要一切但是姓氏,请查看这个答案.
如果名称中有尾随空格,则可能需要通过替换上述公式中的所有A2by 实例来删除它们TRIM(A2).
请注意,只有纯粹的机会,你的第一个公式才=RIGHT(A2,FIND(" ",A2,1)-1)适合Alistair Stevens.这是因为"Alistair"并且" Stevens"碰巧包含相同数量的字符(如果计算前导空格" Stevens").
@Jean 提供的答案提供了一个有效但晦涩的解决方案(尽管它不处理尾随空格)
作为替代方案,请考虑使用 vba 用户定义函数 (UDF)
Function RightWord(r As Range) As Variant
Dim s As String
s = Trim(r.Value)
RightWord = Mid(s, InStrRev(s, " ") + 1)
End Function
Run Code Online (Sandbox Code Playgroud)
在工作表中用作
=RightWord(A2)