2015-01-12 57 views
0

我試圖根據給定的人名和姓創建用戶名。通常,我們使用第一個姓和名作爲用戶名。但是,現在我們的許多用戶都有兩個姓氏,有時還會包含連字符。我正在嘗試創建一個代碼,該代碼爲我提供了第一個首字母,第一個姓氏的第一個字母,然後是最後一個名字。字符串空間之前和之後的文本公式

例如 -

艾米·史密斯 - 瓊斯== asjones

這是我目前使用的,但是,當然,它會產生 「asmithjones」。

=LOWER(LEFT(A1,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,"-","")," ",""))) 

有些用戶有1個姓氏所以這也適用,如果公式遇到那些。但我有一些誰有一個連字符而不是一個空格。 SUSTITUTE功能可以解決這兩個問題,但如何使FIND功能保持不變?

回答

0

嘗試:

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

根據您的編輯,我假設第一名在列d和姓氏都在列F:

=LOWER(LEFT(D2) & IFERROR(LEFT(F2)&MID(F2,FIND("-",SUBSTITUTE(F2," ","-"))+1,99), F2)) 

SUBSTITUTE改變空格連字符姓,所以FIND只能查找連字符。

IFERROR如果未找到連字符(替換後),則會失敗,在這種情況下將返回整個姓氏。

例子:

enter image description here

+1

這是美妙的!非常感謝!看起來我有點古怪。 –

相關問題