Suchen Sie den Teil der Zeichenfolge, der eine Zeichenfolge in einer Zelle von einer Zeichenfolge in einer anderen Zelle unterscheidet

337
JAT86

Ich habe zwei Spalten mit Strings und möchte wissen, welche Teile des Strings aus einer Spalte mit der anderen Spalte haben. Ich habe diese Lösung geprüft. Vergleichen Sie 2 Textzellen und zeigen Sie den Unterschied in der dritten Zelle Super User klappt aber bei meinem Problem nicht.

In der Abbildung unten, möchte ich auf die Ergebnisspalte die Zeichenfolge haben, Elementaryda das ist, was unterscheidet B2von A2. Ich habe versucht, =SUBSTITUTE(A2,B2,"")basierend auf der Lösung in der obigen Verknüpfung zu verwenden. Die Formel bewirkt jedoch das Gegenteil, indem die allgemeinen Zeichenfolgen in beiden Spalten angezeigt werden:

Formel-Screenshot

Wie kann ich den Stringunterschied ( Elementary) stattdessen anzeigen lassen ?

1

1 Antwort auf die Frage

3
DavidPostill

Wie kann ich den String-Unterschied (Elementary) anzeigen lassen?

Hier ist eine benutzerdefinierte Funktion, die aufgerufen wird WORDDIF, was Sie wollen.

So installieren Sie die benutzerdefinierte Funktion ...

  • Alt + F11, um den VBA-Editor zu öffnen
  • Wählen Sie im VBA-Menü Einfügen> Modul
  • Fügen Sie den folgenden Code in das VBA-Bearbeitungsfenster ein

Setzen Sie diese Formel wieder in Excel in C1 ein

=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 

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

Ich kann nicht glauben, dass Excel 2016 diese äußerst nützliche Funktion nicht nativ hat. Vielen Dank. JAT86 vor 5 Jahren 0
@ JAT86 Excel ist in erster Linie eine Tabellenkalkulationsanwendung, kein Werkzeug für die Textverwaltung. Es gibt unendlich viele "extrem nützliche Funktionen", die nicht nativ enthalten sind. Máté Juhász vor 5 Jahren 0