在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
拉第三个名字块
C1
, F1
, I1
从各自的块中取出名字
D1
, G1
, J1
从各自的块中取出标题
任何不需要的列都可以隐藏,只留下需要的列。 将B1
, E1
, H1
这三个区块分解出来,使其他区域中的公式变得更加简单 – 但是可以避免这种情况,只要将其中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 )