我有一个用户名电子表格。名字和姓氏在同一个单元格中。有没有公式可以取第一个单词的首字母和整个第二个单词?
例如,单元格 A1 中有 Jon Smith。
单元格 B1 中应有 JSmith
答案1
如果你想要第二换句话说,公式是:
=LEFT(A1)&MID(A1,IFERROR(FIND(" ",A1),LEN(A1))+1,IFERROR(FIND(" ",SUBSTITUTE(A1," ","",1)),LEN(A1))-IFERROR(FIND(" ",A1),LEN(A1)))
它的工作原理如下:
LEFT(A1)
拉取单元格中的第一个字符
MID(A1,[MESS 1],[MESS 2]
提取中间文本,从 开始[MESS 1]
并包括[MESS 2]
字符
IFERROR(FIND(" ",A1),LEN(A1))+1
查找单元格中第一个空格后的字符,如果没有空格,则查找文本的最末尾(这将使函数MID
不返回任何内容,这是可以接受的,因为没有第二个单词
IFERROR(FIND(" ",SUBSTITUTE(A1," ","",1)),LEN(A1))
查找单元格中的第二个空格,如果没有第二个空格,则查找单元格的结尾。如果只有一个空格,这将找到第二个单词的结尾,这正是我们想要的。
-IFERROR(FIND(" ",A1),LEN(A1))
从第二个空格位置中减去第一个空格位置。这给出了第二个单词的长度,这正是函数所需要的MID
。
如果你想要最后的换句话说,公式是:
=LEFT(A1) & MID(A1,IFERROR(FIND("ÿ",SUBSTITUTE(A1," ","ÿ",(LEN(A1)-LEN(SUBSTITUTE(A1," ","")))/LEN(" "))),LEN(A1))+1,LEN(A1))
它的工作原理如下:
LEFT(A1)
拉取单元格中的第一个字符
MID(A1,[MESS 3],[MESS 4]
提取中间文本,从 开始[MESS 3]
并包括[MESS 4]
字符
IFERROR([MESS 5],LEN(A1))+1
查找单元格中最后一个空格后的字符。如果没有空格,它将返回单元格的长度,这将导致MID
不返回任何内容,这是可以接受的,因为除非将第一个单词算作最后一个单词,否则没有最后一个单词,但这不是我们想要的。[MESS 5]
是查找单元格中最后一个字符的常用公式。在堆栈交换。
LEN(A1)
返回单元格的长度。因为我们想要最后一个单词,所以我们可以MID
直接转到末尾。
答案2
干得好 :
=连接(左(A1,1),B1)
或者
=left(A1,1)&B1