[英]Formula for text before and after space in a string
我正在嘗試根據給定人員的名字和姓氏創建用戶名。 通常,我們使用用戶名的名字的名字和姓氏。 但是,現在我們的許多用戶都有2個姓氏,有時還包括連字符。 我正在嘗試創建一個代碼,該代碼為我提供第一個名字的首字母,第一個姓氏的第一個字母,然后再給我一個姓氏。
例如 -
艾米·史密斯-瓊斯== 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函數做同樣的事情?
嘗試:
=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
失敗,在這種情況下,將返回整個姓氏。
例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.