Extraiga una subcadena única del rango de Excel

Extraiga una subcadena única del rango de Excel

Tengo valores de celda con nombres bastante cercanos entre sí. Me gustaría extraer una subcadena común.

Aquí hay un ejemplo.

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

La salida debe ser_250_Jump_12HR_100MD_

¿Cómo puedo extraer una subcadena común en Excel?

Revisé preguntas similares pero no pude encontrar la respuesta.

Respuesta1

Basado en la UDF en el enlace que publiqué en los comentarios:

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

Luego, suponiendo que sus cadenas estén en la columna A, use la UDF de B1esta manera:

=CSTMatch3(A1,A2)

Luego en B2:

=CSTMatch3(A2,B1)

Y poblar hacia abajo.

Las celdas de la columna Bde cualquier fila determinada ahora muestran la cadena común para todas las celdas Ahasta esa fila.

ingrese la descripción de la imagen aquí

información relacionada