特定の文字を含む文字列から単語全体を抽出する

特定の文字を含む文字列から単語全体を抽出する

テキスト内に特定の文字 ("=") が含まれるセルから単語のみを抽出したいと思います。

A2:  Dolly made me a homemade=cake and some muffins
A3:  we had cheese=cake for dinner
A4: Everyone loves how the bakery makes some awesome=cakes

列 (A2:A4) の次の値を使用して、列 (B2:B4) に次の結果を表示したいと思います。

B2:  homemade=cake
B3:  cheese=cake
B4:  awesome=cakes

ワークシート関数を使用して次の解決策を試しました。

A2: Johnny made his own dinner=lastnight and then cleaned the kitchen

=TRIM(TRIM(IFERROR(RIGHT(SUBSTITUTE(LEFT(A2,SEARCH(" ",A2&" ",SEARCH("=",A2))-1)," ",REPT(" ",LEN(A2))),LEN(C246)),""))),""),

この式は、次の結果で ("=") 記号の右側のデータのみを抽出するため、ご覧のとおり機能しません。一方、("=") 記号の単語全体 (右と左) を抽出するソリューションを探しています。

答え1

以下を試してくださいあなたサー洗練された塗油(UDF)

Public Function Equals(inpt As String) As String
   Equals = ""
   ary = Split(Application.WorksheetFunction.Trim(inpt), " ")
   For Each a In ary
      If InStr(1, a, "=") > 0 Then
         Equals = a
         Exit Function
      End If
   Next a
End Function

ここに画像の説明を入力してください

ユーザー定義関数 (UDF) はインストールも使用も非常に簡単です。

  1. ALT-F11でVBEウィンドウが開きます
  2. ALT-I ALT-Mで新しいモジュールを開く
  3. 内容を貼り付けてVBEウィンドウを閉じます

ワークブックを保存すると、UDF も一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。

UDF を削除するには:

  1. 上記のようにVBEウィンドウを開きます
  2. コードを消去する
  3. VBEウィンドウを閉じる

Excel から UDF を使用するには:

=等しい(A1)

マクロ全般の詳細については、以下を参照してください。

http://www.mvps.org/dmcritchie/excel/getstarted.htm

そして

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

UDF の詳細については、以下を参照してください。

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

これを機能させるにはマクロを有効にする必要があります。

編集#1:

これをせずにVBA同じ方法論を用いて、A1、 でC1入力:

=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

コピーして、B1入力:

=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))

ここに画像の説明を入力してください

答え2

Excel には、別のテキスト文字列から単語やテキストを抽出するのに役立つテキスト関数が多数あります。どの関数、または関数の組み合わせを使用するかは、状況によって異なります。例: セル A1 に「創造性には、確実性を手放す勇気が必要です」というテキスト文字列があるとします。

1. 文字列の最初の5文字を​​取得するには、LEFT関数を使用します: =LEFT(A1,5) 結果は「Creat」です。

2. 文字列の最後の11文字を取得するには、RIGHT関数を使用します: =RIGHT(A1,11) 結果は「確実性」です。

3. 文字列の位置 10 から始まる 7 文字を取得するには、MID 関数を使用します: =MID(A1,10,7) 結果は「y requi」になります。

4. 文字列の最初の単語を取得するには、LEFT 関数と FIND 関数を使用します: =LEFT(A1,(FIND(” “,A1)-1)) 結果は「Creativity」です。

- 詳細は以下をご覧ください:http://www.exceldigest.com/myblog/2009/02/01/how-to-extract-text-from-another-text-string/#sthash.yNDHU7Xe.dpuf

関連情報