2番目または連続する括弧内のデータを抽出する数式

2番目または連続する括弧内のデータを抽出する数式

以下では、数字のみの場合は括弧内のデータを抽出したいと思います。

日産 - X-Trail 発売 (5 月) (6 月) - SO9158518 (65124817) 観光 - Curious 2017 (ニュース) (44124469)

答え1

次のユーザー定義関数を試してください:

Public Function parens(t As String) As String
    Dim i As Long, L As Long, CH As String
    Dim x As String, y As String, temp As String
    Dim ary() As String, Kapture As Boolean, a As Variant
    Dim j As Long

    parens = ""
    L = Len(t)
    x = "("
    y = ")"
    Kapture = False
    temp = ""
    j = 1

    For i = 1 To L
        CH = Mid(t, i, 1)
        If CH = x Then
            Kapture = True
            temp = ""
            ReDim Preserve ary(1 To j)
            j = j + 1
        ElseIf CH = y Then
            ary(UBound(ary)) = temp
        Else
            If Kapture Then temp = temp & CH
        End If
    Next i

    For Each a In ary
        If IsNumeric(a) Then
            parens = 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 を使用するには:

=parens(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

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

関連情報