在excel中拆分两个单词

时间:2013-11-11 17:57:26

标签: excel

在Excel中单元格中的其他单词(Head LM)中将单词拼接在一起

enter image description here

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

我需要能够将[Head LM]从文本的其余部分拆分而不进行肠胃外检查,只需要头部LM。我尝试了几个选项:

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

在这两种情况下,()和其他词语中的文字都不干净。

3 个答案:

答案 0 :(得分:2)

这假设您想要在括号中获取所有单词,而不仅仅是第一次出现(在您的问题中这不是很明确,所以我假设您对所有这些都感兴趣)。要做到这一点,您需要使用Text-To-Columns或其他类似的东西拆分该单元格,这样您的公式一次只需要处理一个名称/标题。然后复制/转置它,以便每个名称/标题都在它自己的行中。

完成后,您可以使用如下公式:

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

这是一张图片:

enter image description here

如果您不需要括号中的所有标题,那么您可以只获取第一个实例,而无需执行任何文本到列/其他步骤/等。根据@ dav1dsm1th的回答。

答案 1 :(得分:2)

如果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会使其他单元格中的公式更简单 - 但可以通过替换(例如){{1}中的公式来避免} B1出现在其他公式中(尽管这显然使这些公式更加复杂)。这样就无需隐藏任何不需要的列 - 因为您只需要计算所需的值。

答案 2 :(得分:1)

将其拆分为许多较小的问题,这是有道理的。

要找到单词的开头,首先找到open paren

=FIND( "(", A1 )

要查找单词的结尾,请找到紧跟打开的paren

的紧密表
=FIND( ")", A1, FIND( "(", A1) )

所以有了这些,你可以找到你的话。它在打开的paren之后开始1个字符,并且在两个减去1个字符之间的长度。

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