在Excel中提取名称

时间:2019-09-13 19:25:24

标签: excel excel-formula extract

在我的excel文件列G中,我的名字是姓氏+名字+中间名。 例如,Tasha,William P是样本名称,Tasha是姓氏,William是名字,P是中间名。我可以用=LEFT(G2, FIND(",", G2)-1)来提取姓氏,但无法分辨提取中间名和名字的好方法。如何使用Excel公式提取名字和中间名?

4 个答案:

答案 0 :(得分:1)

=RIGHT(G2,1)

中间的首字母。

=LEFT(G2,(FIND(",",G2,1)-1))

名字。

=TRIM(MID(SUBSTITUTE(G2, " ", REPT(" ", 99)),2 * 99 - 98,99))

输入姓氏

答案 1 :(得分:1)

您可以使用此公式:

  File "<ipython-input-126-f45b74393598>", line 3
    movies_test.apply(lambda row: row['displayable'].append(['comedy_drama' if all(elem in ['comedy','drama'] for elem in row['test'])]), axis = 1)
                                                                                                                                      ^
SyntaxError: invalid syntax

将其放在B1中,并分3列并按数据长度向下复制。

enter image description here


如果要按顺序排列它们,请使用此:

=TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1,",","")," ",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999))

enter image description here

答案 2 :(得分:0)

Solutions

  

方法1 使用LEFT + RIGHT + MID + FIND函数

名字:=MID(A2,FIND(",",A2)+2,FIND(" ",A2,FIND(" ",A2)+1)-FIND(",",A2)-2)

中间名:=RIGHT(A2,LEN(A2)-FIND(" ",A2,FIND(" ",A2)+1))

姓氏:=LEFT(A2,FIND(",",A2)-1)与您的姓氏

查找名字的逻辑是找到,(space)和第二(space)的位置并返回其间的字符。 中间名的逻辑是找到第二个(space)并返回右边的任何内容。

  

方法2 使用FILTERXML + SUBSTITUTE函数

名字:=FILTERXML("<data><a>"&SUBSTITUTE(SUBSTITUTE(A7,",","")," ","</a><a>")&"</a></data>","/data/a[2]")

中间名:=FILTERXML("<data><a>"&SUBSTITUTE(SUBSTITUTE(A7,",","")," ","</a><a>")&"</a></data>","/data/a[3]")

姓氏:=FILTERXML("<data><a>"&SUBSTITUTE(SUBSTITUTE(A7,",","")," ","</a><a>")&"</a></data>","/data/a[1]")

逻辑是使用 SUBSTITUTE 将全名转换为以下形式:

<data><a>姓氏</a><a>姓氏</a><a>中间名</a></data>

然后使用 FILTERXML 根据XML脚本中的1, 2 or 3顺序返回所需的名称。

有关该公式背后的逻辑,您可以阅读以下文章:Extract Words with FILTERXML

答案 3 :(得分:0)

姓氏为姓时,每个名字之间用空格分隔 enter image description here

然后使用此Excel公式:

=RIGHT(SUBSTITUTE(F14," ","|",LEN(F14)-LEN(SUBSTITUTE(F14," ",""))),LEN(SUBSTITUTE(F14," ","|",LEN(F14)-LEN(SUBSTITUTE(F14," ",""))))-SEARCH("|",SUBSTITUTE(F14," ","|",LEN(F14)-LEN(SUBSTITUTE(F14," ","")))))