2

在Excel中的单元格中将单词拆分为一对,例如(Head LM)

在此处输入图像描述

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

我需要能够将 [Head LM] 从文本的其余部分中拆分出来,而无需使用双引号,只需 Head LM。我尝试了几种选择,例如:

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

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

4

3 回答 3

2

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

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

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

这是一张图片:

在此处输入图像描述

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

于 2013-11-11T18:13:17.507 回答
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拉出第三个名称块

C1, F1,I1从各自的块中提取名称

D1, G1,J1从各自的块中提取标题

任何不需要的列都可以隐藏 - 只留下需要的列可见。将三个块分解为B1E1并使H1其他单元格中的公式更简单 - 但可以通过替换(例如)其他公式中出现的B1任何地方的公式来避免B1(尽管这显然会使这些公式更加复杂) . 这将消除隐藏任何不需要的列的需要 - 因为您只会计算您需要的值。

于 2013-11-11T18:18:17.297 回答
1

将其拆分为许多较小的问题,以便有意义。

要找到单词的开头,首先要找到左括号

=FIND( "(", A1 )

要查找单词的结尾,请找到紧跟在您的开括号后面的括号

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

因此,有了这些解决方案,您就可以找到自己的话。它在 open paren 之后开始 1 个字符,并在两者之间减去 1 个字符的长度。

= MID( A1, FIND( "(", A1 ) + 1 , ( FIND( ")", A1, FIND( "(", A1) ) - FIND( "(", A1 ) ) - 1 )
于 2013-11-11T18:28:43.993 回答