2017-10-22 5 views
1

この式を使用して、指定された文字 "@"で始まる特定の単語を抽出します。それはうまくいっていますが、より多くの単語が同じものから始まっていれば、最初の単語だけが抽出されます。特定の文字で始まるいくつかの単語を抽出する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 
+0

この答えてみてください。 [Excelで正規表現を](https://stackoverflow.com/questions/22542834/how- regex-in-microsoft-excel-both-in-cell-and-loops) –

+0

どのExcelのバージョンですか? –

+0

そして、ある種類の区切り文字を使って結果を単一のセルに入れたいですか?または複数の細胞で? –

答えて

0

この式を試してみてください。それはあなたの数式のわずかな変更です。それがしているのは、最初の@記号を検索して~~で置き換え、含まれている単語を抽出するよりも@記号です。 2番目の@ signを検索して同じことをします。

=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))) 

enter image description here

あなたは、抽出するための第三の@単語を追加ちょうどCONCATENATEの別のインスタンスを追加し、第三の発生と式のこのIFERROR(TRIM(LEFT(SUBSTITUTE(MID(B4,FIND("~~",SUBSTITUTE(B4,"@","~~",2(for third word replace value 2 with 3)),LEN(B4))部品を交換したい場合。 3つの値を抽出するには、この式を使用してください。 (私はワード@が見つからなかった場合に備えIFERROR部分を追加)

=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)),"")) 

enter image description here

関連する問題