Hier ist ein UDF Sie dafür verwenden könnte:
' Returns a `delimiter`-joined list containing
' items from minuend (a `delimiter`-joined list)
' but not items from subtrahend (a `delimiter`-joined list)
Public Function SET_SUB(minuend As String, subtrahend As String, Optional delimiter As Variant)
If IsMissing(delimiter) Then delimiter = "," ' Set default delimiter as comma
Dim i As Integer
Dim emptyList As Boolean: emptyList = True
' Retrieve list items
Dim fullSet As Variant
Dim removeSet As Variant
fullSet = Split(minuend, delimiter)
removeSet = Split(subtrahend, delimiter)
SET_SUB = ""
' Loop through subtrahend, removing matches
For i = 0 To UBound(fullSet)
If IsError(Application.Match(fullSet(i), removeSet, 0)) Then
SET_SUB = SET_SUB & fullSet(i) & delimiter
emptyList = False
End If
Next
' Remove last delimiter for non-empty list
If Not emptyList Then
SET_SUB = Left(SET_SUB, Len(SET_SUB) - Len(delimiter))
End If
End Function
Tropfen, die in einem Modul und der Funktion wird auf dem Arbeitsblatt (Informationen zu UDF here, wenn Sie nicht vertraut sind) zugänglich sein.
Er nimmt die Elemente in der ersten Liste, entfernt die Elemente in der zweiten Liste und gibt die festgelegte Differenz zurück. Sie können optional ein "delimiter" -Argument hinzufügen, wenn Sie Listen wollen, die durch Kommas getrennt sind.
Aufbau aus Ihrem Beispiel:
A1 = a, b, c, d
A2 = b, c
A3 = =SET_SUB(A1, A2)
= a, d
Für eine durch Semikolon getrennte Liste:
A1 = a, b, c, d
A2 = b, c
A3 = =SET_SUB(A1, A2, ";")
= a; d
Können Sie besser Ihr Problem definieren (Ich bin mir nicht sicher, wie Sie in Ihrem Beispiel "A und B" als gewünschten Rückgabewert erhalten haben. Kannst du uns auch zeigen, was du bisher versucht hast und warum deine Versuche gescheitert sind? – Mikegrann
Hoppla, das war ein Tippfehler. Ich habe es korrigiert. A und D wären mein gewünschter Rückgabewert, da sich A & D nur in Zelle 1 und nicht in Zelle 2 befinden. Ich denke, ich muss eine Art umgekehrte Übereinstimmungsfunktion verwenden, aber immer noch versuchen, das herauszufinden – Bzinck15105
Verwenden Sie Split (cellValue, ","), um Arrays aus jeder Zelle zu erstellen, dann die Elemente im ersten Array zu durchlaufen und 'Match()' zu verwenden, um zu sehen, ob sie im zweiten Array enthalten sind. –