한 셀의 문자열과 다른 셀의 문자열을 구별하는 문자열 부분 찾기

한 셀의 문자열과 다른 셀의 문자열을 구별하는 문자열 부분 찾기

문자열이 포함된 두 개의 열이 있고 한 열의 문자열 중 어느 부분이 다른 열과 함께 있는지 알고 싶습니다. 이 솔루션을 확인했습니다.2개의 텍스트 셀을 비교하고 세 번째 셀에 차이점 표시 | 슈퍼유저하지만 내 문제에는 작동하지 않습니다.

아래 스크린샷에서는 결과 열에 문자열이 포함되기를 원합니다 . Elementary이것이 B2. 위 링크의 솔루션을 기반으로 A2사용해 보았지만 공식이 수행하는 작업은 두 열에 공통 문자열을 표시하여 반대 작업을 수행하는 것입니다.=SUBSTITUTE(A2,B2,"")

수식 스크린샷

대신 문자열 차이( Elementary)를 표시하도록 하려면 어떻게 해야 합니까?

답변1

대신 문자열 차이(초등)를 표시하도록 하려면 어떻게 해야 합니까?

WORDDIF다음은 원하는 작업을 수행할 수 있는 사용자 정의 함수입니다 .

사용자 정의 기능을 설치하려면...

  • Alt+F11을 눌러 VBA 편집기 열기
  • VBA 메뉴에서 삽입 > 모듈을 선택합니다.
  • VBA 편집 창에 아래 코드를 붙여넣으세요.

Excel로 돌아가서 이 수식을 C1에 입력하세요.

=WORDDIF(A1,B1)

암호:

Function WORDDIF(rngA As Range, rngB As Range) As String

    Dim WordsA As Variant, WordsB As Variant
    Dim ndxA As Long, ndxB As Long, strTemp As String

    WordsA = Split(rngA.Text, " ")
    WordsB = Split(rngB.Text, " ")

    For ndxB = LBound(WordsB) To UBound(WordsB)
        For ndxA = LBound(WordsA) To UBound(WordsA)
            If StrComp(WordsA(ndxA), WordsB(ndxB), vbTextCompare) = 0 Then
                WordsA(ndxA) = vbNullString
                Exit For
            End If
        Next ndxA
    Next ndxB

    For ndxA = LBound(WordsA) To UBound(WordsA)
        If WordsA(ndxA) <> vbNullString Then strTemp = strTemp & WordsA(ndxA) & " "
    Next ndxA

    WORDDIF = Trim(strTemp)

End Function

원천https://www.mrexcel.com/forum/excel-questions/486708-compare-two-strings-find-difference.html

관련 정보