The following function would do this for you.
Function compare(setA As String, setB As String)
    Const delim As String = ";"
    
    For Each strPartA In Split(setA, delim)
        found = False
        For Each strPartB In Split(setB, delim)
            If Trim(strPartA) = Trim(strPartB) Then found = True
        Next
        If found = False Then compare = compare & strPartA & delim
    Next
    
    If Len(compare) > 0 Then compare = Left(compare, Len(compare) - 1)
    
End Function
You can use this as a UDF - i.e. enter it as a formula, e.g. if A1 contains "red;blue;green" and B1 contains "yellow;purple;red" then you can enter this formula in C1:
=compare(A1,B1)             to return "blue;green"
And this in D1
=compare(B1,A1)             to return "yellow;purple"
Or alternatively, you could write this into a routine:
Sub test()
    Dim c As Range
    With ActiveSheet
        For Each c In Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row).Cells
            c.Offset(, 2) = compare(c.Value, c.Offset(, 1).Value)
            c.Offset(, 3) = compare(c.Offset(, 1).Value, c.Value)
        Next
    End With
End Sub