Encontre a parte da string que distingue uma string em uma célula de uma string em outra célula

Encontre a parte da string que distingue uma string em uma célula de uma string em outra célula

Tenho duas colunas com strings e quero saber quais partes da string de uma coluna tem com a outra coluna. Eu verifiquei esta soluçãoCompare 2 células de texto e mostre a diferença na terceira célula | Superusuáriomas não funciona para o meu problema.

Na captura de tela abaixo, quero que a coluna de resultado tenha a string, Elementarypois é isso que o diferencia B2de A2. Tentei usar =SUBSTITUTE(A2,B2,"")com base na solução do link acima, mas o que a fórmula faz é fazer o contrário exibindo as strings comuns nas duas colunas:

captura de tela da fórmula

Como posso exibir a diferença de string ( Elementary)?

Responder1

Como posso exibir a diferença de string (Elementar)?

Aqui está uma função personalizada chamada WORDDIFque pode fazer o que você quiser.

Para instalar a função personalizada...

  • Alt+F11 para abrir o Editor VBA
  • No menu VBA, selecione Inserir > Módulo
  • Cole o código abaixo na janela de edição do VBA

De volta ao Excel, coloque esta fórmula em C1

=WORDDIF(A1,B1)

Código:

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

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

informação relacionada