当len更改时分割单元格

下午好,我有一个现成的公式,这个公式在我们得到的报告中脱颖而出,给了我一个名字。 我想知道如果我能把这个提升到一个新的水平,现在把这个公式的结果取下来,然后把它放在前面。 IE,使用我的名字,你会得到杰拉尔德W麦克斯韦结果。 我想得到麦克斯韦,杰拉尔德W(不标点)。

以下是报告中的名称示例以及公式:

Name Example: Chat Operator Performance by Operator by Day for 1234567_1234567890_Gerald W_Maxwell Formula: =IFERROR(IF(RIGHT($B1,6)="EXEMPT",LEFT(SUBSTITUTE(RIGHT($B1,LEN($B1)-68),"_"," "),LEN(SUBSTITUTE(RIGHT($B1,LEN($B1)-68),"_"," "))-7),SUBSTITUTE(RIGHT($B1,LEN($B1)-68),"_"," ")),"DELETE") 

所以,如果你把这个公式放在单元格A1中,那么你将得到Gerald W Maxwell。 这很好,我想知道如果我们能根据这个名字先input姓氏。

在我发布之前,让我先分解一下公式在做什么。 它的核心是正确的($ B1,LEN($ B1)-68),并从绒毛上剥下原始名称。 然后用一个替代函数来包装掉这个名字的下划线。 下一个包装是If语句寻找单词“EXEMPT”(因为创build这个报告的人认为这将是一个很好的function…),最后,完成包装弓…一个IFERROR声明给你一个不错的“删除”。 这是我可以运行一个macros,从数据表中删除我不需要的东西的行。

最令我痛心的,是我有姓名的人,有的有姓,名,姓,名的第一,中,后几个特殊人。

如果不能完成的话,我可以编写这个代码来对列进行文本处理,然后重新对它们进行重新协调,但是如果我能把它们整合到一个单一的公式中,我就可以省去编码的麻烦。

预先感谢您的帮助。

G

这个答案是根据一个公式devise的,在这个答案中得到string中最右边的字符:

 =right(A1,len(A1) - FIND("@",SUBSTITUTE(A1," ","@",(LEN(A1)-LEN(SUBSTITUTE(A1," ","")))/LEN(" "))))&" "&left(A1,FIND("@",SUBSTITUTE(A1," ","@",(LEN(A1)-LEN(SUBSTITUTE(A1," ","")))/LEN(" ")))) 

如果你的名字是在A1中,那么在A2中,你将得到Maxwell Gerald W.这不涉及像Jr.或者多个姓氏这样的例外。 它只是在最后一个空格之后剔除最后一位,并将其重新附加到string的前面。