Найдите часть строки, которая отличает строку в одной ячейке от строки в другой ячейке.

Найдите часть строки, которая отличает строку в одной ячейке от строки в другой ячейке.

У меня есть два столбца со строками и я хочу узнать, какие части строки из одного столбца связаны с другим столбцом. Я проверил это решениеСравните 2 текстовые ячейки и покажите разницу в третьей ячейке | Super Userно это не помогает решить мою проблему.

На снимке экрана ниже я хочу, чтобы в столбце результата была строка, 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

Связанный контент