在Excel中拆分两个单词

在Excel中单元格中的单词(Head LM)从一个单元格拼成一对

在这里输入图像说明

Name Role John Dowe (Head LM); Moniq Jamese (Lead JK); Larrye Stuarte (Front TR) John Dowe Head LM 

我需要能够分开[头LM]从文本的其余部分没有parentesis,只是头LM。 我尝试了几个选项,如:

 =TRIM(RIGHT(SUBSTITUTE(S3," ",REPT(" ",100)),300)) =RIGHT(S3, LEN(S3)-FIND(" ", S3,1)-5) =>resule is : (Lead PM); J 

在这两种情况下,文本都不是从()和其他文字中清除的。

如果A1包含: –

 John Dowe (Head LM); Moniq Jamese (Lead JK); Larrye Stuarte (Front TR) 

这个:-

 =LEFT(MID(A1,FIND("(",A1)+1,LEN(A1)),FIND(")",MID(A1,FIND("(",A1)+1,LEN(A1)))-1) 

返回: –

 Head LM 

为了澄清:-

MID(A1,FIND("(",A1)+1,LEN(A1))查找A1开头的部分

FIND(")",MID(A1,FIND("(",A1)+1,LEN(A1)))出第二个字符的个数)

LEFT({...first snippet...},{...second snippet...}-1)删除第二个)

更新以处理所有名称/标题

 A1 your example text B1 =LEFT(A1,FIND(";",A1)) C1 =LEFT(B1,FIND(" (",B1)-1) D1 =MID(B1,FIND("(",B1)+1,FIND(")",B1)-(FIND("(",B1)+1)) E1 =MID(A1,LEN(B1)+2,FIND(";",A1)+3) F1 =LEFT(E1,FIND(" (",E1)-1) G1 =MID(E1,FIND("(",E1)+1,FIND(")",E1)-(FIND("(",E1)+1)) H1 =MID(A1,LEN(B1)+2+LEN(E1)+1,LEN(A1)) I1 =LEFT(H1,FIND(" (",H1)-1) J1 =MID(H1,FIND("(",H1)+1,FIND(")",H1)-(FIND("(",H1)+1)) 

B1拉第一个名字块(直到第一个分号)

E1拉第二个名字块(直到第二个分号)

H1拉第三个名字块

C1F1I1从各自的块中取出名字

D1G1J1从各自的块中取出标题

任何不需要的列都可以隐藏,只留下需要的列。 将B1E1H1这三个区块分解出来,使其他区域中的公式变得更加简单 – 但是可以避免这种情况,只要将其中B1出现在其他公式中的B1公式代入(例如)公式更复杂)。 这将删除需要隐藏任何不需要的列 – 因为你只会计算出你需要的值。

这假定你想要所有的括号中的单词,而不仅仅是第一次出现(在你的问题中这不是很清楚,所以我认为你对所有这些单词都感兴趣)。 要做到这一点,你需要使用Text-To-Columns或者其他属性来分割单元格,这样你的公式只需要一次处理一个名字/标题。 然后复制/转置它,使每个名称/标题在自己的行。

这样做,你可以使用一个公式,如:

 =SUBSTITUTE(SUBSTITUTE(RIGHT(A1,LEN(A1)-FIND("(",A1,1)+1),"(",""),")","") 

这是一张图片:

在这里输入图像说明

如果你不需要括号中的所有标题,那么你可以只获得第一个实例,而不用做任何文本到列/额外的步骤/等等。 根据@ dav1dsm1th的答案。

将其分解成许多较小的问题,这样才有意义。

要find这个词的开头,先find开放的文件

=FIND( "(", A1 )

要find单词的结尾,find跟随你的开放paren的密切paren

 =FIND( ")", A1, FIND( "(", A1) ) 

所以这些解决了,你可以find你的话。 在开放paren之后开始1个字符,并且在两个长度之间减去1个字符。

 = MID( A1, FIND( "(", A1 ) + 1 , ( FIND( ")", A1, FIND( "(", A1) ) - FIND( "(", A1 ) ) - 1 )