String 字符串中空格前后的文本公式

String 字符串中空格前后的文本公式,string,excel-formula,substitution,String,Excel Formula,Substitution,我试图根据给定的人名和姓氏创建用户名。通常,我们使用用户名的首字母和姓氏。然而,现在我们的许多用户有两个姓,有时还包括连字符。我试图创建一个代码,给我首字母,第一个姓氏的第一个字母,然后是姓氏 比如说-- 艾米·史密斯·琼斯== 阿斯琼斯 这是我目前正在使用的,但是,当然,它会产生“阿斯米斯琼斯” 我尝试过这种方法的一些变体,但没有成功 =LOWER(LEFT(A1,1)&LEFT(A2,1)&SUBSTITUTE(SUBSTITUTE(A2,"-","")," ",""))

我试图根据给定的人名和姓氏创建用户名。通常,我们使用用户名的首字母和姓氏。然而,现在我们的许多用户有两个姓,有时还包括连字符。我试图创建一个代码,给我首字母,第一个姓氏的第一个字母,然后是姓氏

比如说--

艾米·史密斯·琼斯== 阿斯琼斯

这是我目前正在使用的,但是,当然,它会产生“阿斯米斯琼斯”

我尝试过这种方法的一些变体,但没有成功

=LOWER(LEFT(A1,1)&LEFT(A2,1)&SUBSTITUTE(SUBSTITUTE(A2,"-","")," ",""))
是否有方法生成第一个字符串的第一个字母和第二个字符串的全文?

编辑

我想出了一些办法,但现在我面临另一个挑战

=IFERROR(LOWER(LEFT(D2,1)&SUBSTITUTE(SUBSTITUTE(RIGHT(F2,LEN(F2)-FIND(" ",F2&" ")),"-","")," ","")),LOWER(LEFT(D2,1)&SUBSTITUTE(SUBSTITUTE(F2,"-","")," ","")))
有些用户有一个姓氏,因此如果公式遇到这些姓氏,则此项适用。但我有一些人用连字符代替空格。SUSTITUTE函数可以同时使用这两个函数,但是如何才能使FIND函数实现相同的功能呢?

请尝试:

=LEFT(A1,1)&MID(A1,(SEARCH(" ",A1)+1),1)&RIGHT(A1,(LEN(A1)-(SEARCH(" ",(SUBSTITUTE(A1,"-"," ")),(SEARCH(" ",A1)+1)))))

根据您的编辑,我假设名字在D列,姓氏在F列:

=LOWER(LEFT(D2) & IFERROR(LEFT(F2)&MID(F2,FIND("-",SUBSTITUTE(F2," ","-"))+1,99), F2))
SUBSTITUTE
将姓氏中的空格更改为连字符,因此
FIND
只能查找连字符

IFERROR
如果未找到连字符(替换后),则会失败,在这种情况下,将返回整个姓氏

示例:


这太棒了!非常感谢!看起来我的有点古怪。
=LOWER(LEFT(D2) & IFERROR(LEFT(F2)&MID(F2,FIND("-",SUBSTITUTE(F2," ","-"))+1,99), F2))