在我的excel文件列G中,我的名字是姓氏+名字+中间名。
例如,Tasha,William P是样本名称,Tasha是姓氏,William是名字,P是中间名。我可以用=LEFT(G2, FIND(",", G2)-1)
来提取姓氏,但无法分辨提取中间名和名字的好方法。如何使用Excel公式提取名字和中间名?
答案 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列并按数据长度向下复制。
如果要按顺序排列它们,请使用此:
=TRIM(MID(SUBSTITUTE(SUBSTITUTE($A1,",","")," ",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999))
答案 2 :(得分:0)
方法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)