我有一个现有的公式,非常适合从我们得到的报告中删除文字垃圾并给我起名字。我想知道我是否可以将其提升到一个新的水平,现在从该公式的结果中取出姓氏,然后将其放在前面。 IE,根据我的名字你会得到Gerald W Maxwell的结果。而且我想得到Maxwell,Gerald 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。这很好,我想知道我们是否可以在此基础上使用姓氏。
在发布此内容之前,让我先分解一下公式的作用。在它的核心是正确的($ B1,LEN($ B1)-68),这将从绒毛中剥离原始名称。然后用替换函数包装它以从名称中删除任何下划线。下一个包装器是一个If语句,用于查找单词“EXEMPT”(因为创建此报告的人认为这将是一个很好的功能......),最后,用弓完成包装... IFERROR声明给你一个很好的“删除”。这样我就可以运行一个宏来删除数据表中不需要的东西。
让我最悲伤的是,我有名字和姓氏的人,有些人有头等,中等和最后,以及一些有姓,姓,姓和姓的特殊人。
如果无法完成,我可以对此进行编码,将文本添加到列中并在其他方面重新连接,但如果我可以将其转换为单行公式,我可以省去自己的麻烦编码。
答案 0 :(得分:1)
此答案基于一个公式,旨在获取this answer中字符串中最右侧的字符:
=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.或多个姓氏这样的例外情况。它只是在最后一个空格之后切掉最后一个位并将它重新连接到字符串的前面。