2017-01-04 4 views
0

Ich bin auf der Suche nach etwas Hilfe, ich versuche, einen Weg zu erarbeiten, um Daten aus zwei Werten zu nehmen und anzuzeigen, was der Unterschied in einer anderen Box ist.Excel - Anzeige fehlender Werte

Beispiel

 A       B 
1 The cat and dog   | 
2 The and dog    | cat 
3 cat and dog    | the 
4 the cat     | and dog 

Irgendwelche Ideen?

+0

Das perfekte Ergebnis sollte "die Katze und der Hund" sein, wenn nicht angezeigt wird, was im Feld fehlt. – Piglet

+0

Ist es nicht einfach? A1 zeigt die Katze und den Hund, daher ist in B1 nichts vorhanden, da es die perfekte Aussage ist. A2 "Der und Hund", was fehlt, ist "Katze", die in B2 angezeigt wird, da es nicht die richtige Aussage ist. – Piglet

Antwort

5

Verwenden Sie ein UDF:

Function LeftOver(Str1 As String, Str2 As String) As String 
Dim spltstr 

For Each spltstr In Split(Str2) 
    Str1 = Trim(Replace(Str1, spltstr, "", , , vbTextCompare)) 
Next spltstr 

LeftOver = Replace(Str1, " ", " ") 
End Function 

Dann würden Sie dies in B1 setzen:

=LeftOver($A$1,A1) 

enter image description here

+0

Danke, das funktioniert super :)! – Piglet

0

Mithilfe von VBA können Sie eine benutzerdefinierte Funktion erstellen, die den Minuend in ein Array aufteilt, den Subtrahend in ein Dictionary analysiert und das Minuend-Array durchläuft, um Elemente im Subtrahend zu entfernen und die Differenz zurückzugeben. Ich hoffe, das war hilfreich

0

diese kleine User Defined Function Versuchen:

Public Function WhatsMissing(s1 As String, s2 As String) As String 
    Dim IsInThere As Boolean 
    With Application.WorksheetFunction 
     ary1 = Split(.Trim(LCase(s1)), " ") 
     ary2 = Split(.Trim(LCase(s2)), " ") 
    End With 
    For Each a1 In ary1 
     IsInThere = False 
     For Each a2 In ary2 
      If a2 = a1 Then IsInThere = True 
     Next a2 
     If Not IsInThere Then WhatsMissing = WhatsMissing & " " & a1 
    Next a1 
End Function 

enter image description here