Fórmula para extrair os dados entre parênteses segundos/consecutivos

Fórmula para extrair os dados entre parênteses segundos/consecutivos

A seguir, quero extrair os dados entre parênteses se forem apenas números.

Nissan - Lançamento do X-Trail (maio) (junho) - SO9158518 (65124817) Turismo - Curioso 2017 (Notícias) (44124469)

Responder1

Experimente esta função definida pelo usuário:

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

insira a descrição da imagem aqui

Extrai material entre parênteses até encontrar um valor numérico.

Funções definidas pelo usuário (UDFs) são muito fáceis de instalar e usar:

  1. ALT-F11 abre a janela VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a UDF:

  1. abra a janela VBE como acima
  2. limpar o código
  3. feche a janela do VBE

Para usar a UDF do Excel:

=parens(A1)

Para saber mais sobre macros em geral, consulte:

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

e

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

e para obter detalhes sobre UDFs, consulte:

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

As macros devem estar habilitadas para que isso funcione!

informação relacionada