Trouver la partie de la chaîne qui distingue une chaîne d'une cellule d'une chaîne d'une autre cellule


1

J'ai deux colonnes avec des chaînes et je veux savoir quelles parties de la chaîne d'une colonne ont avec l'autre colonne. J'ai vérifié cette solution Comparer 2 cellules de texte et montrer la différence dans la troisième cellule | Super utilisateur mais cela ne fonctionne pas pour mon problème.

Dans la capture d' écran ci - dessous, je veux la colonne de résultat d'avoir la chaîne Elementarypuisque c'est ce qui différencie B2de A2. J'ai essayé d'utiliser =SUBSTITUTE(A2,B2,"")basé sur la solution dans le lien ci-dessus, mais ce que la formule fait est le contraire en affichant les chaînes communes dans les deux colonnes:

Formule capture d'écran

Comment puis-je lui faire afficher la différence de chaîne ( Elementary) à la place?

Réponses:


3

Comment puis-je lui faire afficher la différence de chaîne (élémentaire)?

Voici une fonction personnalisée appelée WORDDIFqui peut faire ce que vous voulez.

Pour installer la fonction personnalisée ...

  • Alt + F11 pour ouvrir l'éditeur VBA
  • Dans le menu VBA, sélectionnez Insertion> Module.
  • Collez le code ci-dessous dans la fenêtre VBA Edit

De retour dans Excel, mettez cette formule en C1

=WORDDIF(A1,B1)

Code:

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

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


Je ne peux pas croire qu'Excel 2016 n'ait pas nativement cette fonction extrêmement utile. Merci beaucoup.
JAT86

@ JAT86 Excel est principalement une application de tableur pas un outil de gestion de texte. Il existe une infinité de "fonctions extrêmement utiles" non incluses nativement.
Máté Juhász
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.