Excel 범위에서 고유 하위 문자열 추출

Excel 범위에서 고유 하위 문자열 추출

서로 꽤 가까운 이름을 가진 셀 값이 있습니다. 공통 하위 문자열을 추출하고 싶습니다.

여기에 예가 있습니다.

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

출력은_250_Jump_12HR_100MD_

Excel에서 공통 하위 문자열을 어떻게 추출합니까?

비슷한 질문을 확인했지만 답변을 찾을 수 없습니다.

답변1

내가 댓글에 게시한 링크의 UDF를 기반으로 합니다.

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

그런 다음 문자열이 열에 있다고 가정하고 다음과 같이 AUDF를 사용하십시오 B1.

=CSTMatch3(A1,A2)

그런 다음 B2:

=CSTMatch3(A2,B1)

그리고 아래로 채우십시오.

B이제 특정 행의 열에 있는 셀에 해당 A행까지의 모든 셀에 대한 공통 문자열이 표시됩니다.

여기에 이미지 설명을 입력하세요

관련 정보