提取几个以特定字符EXCEL开头的单词

我有这个公式来提取一个特定的字,以一个给定的字符“@”开始。 它工作正常,但是,有更多的话开始相同,它只会提取第一个字。

如何使它全部提取?

=TRIM(LEFT(SUBSTITUTE(MID(B2,FIND("@",B2),LEN(B2))," ",REPT(" ",100)),100)) 

示例如下:

 Seq Desc extracted 1 text @word @word 2 text @word_one and @word_two @word_one 

试试这个公式。 这是你的公式的一个轻微修改。 它所做的是search第一个@符号而不是用~~代替它,并提取包含的单词。 那么它search第二个@符号,并执行相同的操作。

 =CONCATENATE(TRIM(LEFT(SUBSTITUTE(MID(B3,FIND("~~",SUBSTITUTE(B3,"@","~~",1)),LEN(B3))," ",REPT(" ",100),1),100)),",",TRIM(LEFT(SUBSTITUTE(MID(B3,FIND("~~",SUBSTITUTE(B3,"@","~~",2)),LEN(B3))," ",REPT(" ",100),1),100))) 

在这里输入图像说明

如果你想添加第三个@字提取,只需要添加CONCATENATE的另一个实例,并replace这个IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",2(for third word replace value 2 with 3)),LEN(B4))部分的公式中有第三个出现,所以为了提取3个值,请使用这个公式(我添加了IFERROR部分以防万一@没有find)

 =CONCATENATE(IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",1)),LEN(B4))," ",REPT(" ",100),1),100)),""),",",IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",2)),LEN(B4))," ",REPT(" ",100),1),100)),""),",",IFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",3)),LEN(B4))," ",REPT(" ",100),1),100)),"")) 

在这里输入图像说明