テキストを抽出するための Excel 式

テキストを抽出するための Excel 式

セル A1 内に次の内容があります。

NEW ORLEANS (0-0) at GREEN BAY (0-0)

セル B1 に「NEW ORLEANS」、セル C1 に「GREEN BAY」を配置する数式を希望します。

答え1

最初のチームを獲得するには:

=LEFT(A1,FIND("(",A1)-2)

2 番目のチームを取得するには:

=MID(A1,FIND(" at ",A1)+4,FIND("(",A1,FIND(")",A1))-FIND(" at ",A1)-5)

答え2

つまり、A1 にそのセルがあった場合、B1 には次のセルがあります。

=LEFT(A1, FIND("(", A1)-2)

C1 では次のようになります:

=MID(A1, FIND(")", A1) + 4, LEN(A1)-FIND(")", A1)-9)

これは、他のセルのテキストのレイアウトを代表するサンプルとして提供されたサンプルに大きく依存することに注意してください。これは、文字列内の括弧を見つけることに基づいています。実際、2 番目の数字 (0-0) が 2 桁になると、おそらく壊れるだろうと気付きました。それを考慮するには、Mid() 呼び出しの長さを決定するために、2 番目の括弧セットを探す必要があります。正直に言うと、これが私の解決すべき問題であれば、split を使用して VBA マクロを作成するだけだと思います。

したがって、VBA 経由で次の操作を実行します。次の 2 つの関数を追加します。

Function GetFirstTeam()
    Application.Volatile
    GetFirstTeam = Trim(Split(ActiveCell.Offset(0, -1), "(")(0))
End Function

Function GetSecondTeam()
    Application.Volatile
    GetSecondTeam = Trim(Split(Split(ActiveCell.Offset(0, -2), " at ")(1), "(")(0))
End Function

次にB1で:

=GetFirstTeam()

C1では次のようになります:

=GetSecondTeam()

関連情報