Extraia substring exclusiva do intervalo do Excel

Extraia substring exclusiva do intervalo do Excel

Tenho valores de células com nomes bastante próximos uns dos outros. Eu gostaria de extrair uma substring comum.

Aqui está um exemplo.

1100_250_Jump_12HR_100MD_S_run1 
1100_250_Jump_12HR_100MD_S_run2
1100_250_Jump_12HR_100MD_S_run3 
1100_250_Jump_12HR_100MD_S_run4 
1101_250_Jump_12HR_100MD_U_run5 
1101_250_Jump_12HR_100MD_U_run6 
1102_250_Jump_12HR_100MD_U_run7 
1102_250_Jump_12HR_100MD_U_run8 
1102_250_Jump_12HR_100MD_U_run9 
1102_250_Jump_12HR_100MD_U_run10

A saída deve ser_250_Jump_12HR_100MD_

Como posso extrair uma substring comum no Excel?

Verifiquei perguntas semelhantes, mas não consegui encontrar a resposta.

Responder1

Baseado na UDF do link que postei nos comentários:

Option Explicit


Public Function CSTMatch3(Target1 As Range, Target2 As Range) As String

CSTMatch3 = ""

Dim myString As String, String1 As String, String2 As String, i As Long, j As Long, noChar As Long

noChar = 0

'The goal here is to assign the larger String to the variable String1
If Target1 = Target2 Then
    CSTMatch3 = Target1
    Exit Function
End If

If Len(Target1) >= Len(Target2) Then
    String1 = Target1
    String2 = Target2
Else
    String1 = Target2
    String2 = Target1
End If

For j = 1 To Len(String2)
    For i = 1 To Len(String1) - j
        If InStr(String2, Mid(String1, i, j)) Then
            myString = Mid(String1, i, j)
            noChar = noChar + 1
            Exit For
        End If
    Next i
Next j

CSTMatch3 = myString

End Function

Então, supondo que suas strings estejam na coluna A, use a UDF B1assim:

=CSTMatch3(A1,A2)

Então em B2:

=CSTMatch3(A2,B1)

E povoar.

As células na coluna Bde qualquer linha agora mostram a sequência comum para todas as células até Aaquela linha.

insira a descrição da imagem aqui

informação relacionada