Haben Sie eine Lösung für Ihr Problem eine Hilfsspalte sagen Column E
(ändern Spalte E je nach Bedarf) verwendet wird.
Im Cell E2
schreiben die folgende Formel:
=IFERROR(INDEX($A$2:$A$20, MATCH(0,INDEX(COUNTIF(E1:$E$1, $A$2:$A$20)+(COUNTIF($A$2:$A$20, $A$2:$A$20)<>1),0,0), 0)),"")
dann ziehen/kopieren Sie diese Formel nach unten je nach Bedarf. Dadurch erhalten Sie nicht doppelte Nummern von Column A
.
Dann in Cell C2
folgende Formel eingeben:
=IFERROR(INDEX($E$2:$E$20,MATCH(0,IFERROR(MATCH($E$2:$E$20,$B$2:$B$12,0),COUNTIF($C$1:$C1,$E$2:$E$20)),0)),"")
Dies ist eine Matrixformel es so begehen, indem Ctrl + Drücken der Umschalttaste + Geben Sie und ziehen/kopieren Sie diese Formel nach unten je nach Bedarf und Sie werden Ihr gewünschtes Ergebnis haben, wie in der Abbildung unten gezeigt:
EDIT: VBA Lösung ________________________________________________________________________________
Sub Demo()
Dim dict1 As Object, dict2 As Object, dict3 As Object
Dim c1 As Variant, c2 As Variant
Dim i As Long, lastRow As Long
Set dict1 = CreateObject("Scripting.Dictionary")
Set dict2 = CreateObject("Scripting.Dictionary")
Set dict3 = CreateObject("Scripting.Dictionary")
lastRow = Cells(Rows.count, "A").End(xlUp).Row '-->get last row of Column A
c1 = Range("A2:A" & lastRow)
'add unique values in Column A to dict1
For i = 1 To UBound(c1, 1)
dict1(c1(i, 1)) = 1
Next i
lastRow = Cells(Rows.count, "B").End(xlUp).Row '-->get last row of Column B
c2 = Range("B2:B" & lastRow)
'add unique values in Column B to dict2
For i = 1 To UBound(c2, 1)
dict2(c2(i, 1)) = 1
Next i
'check existence of dict1 values in dict2
'if not present add to dict3
For Each k In dict1.keys
If Not dict2.exists(k) Then
dict3.Add k, 1
End If
Next k
'display dict3 in Column C
Range("C2").Resize(dict3.count) = Application.Transpose(dict3.keys)
End Sub
Hallo, Vielen Dank für das, ich für 100 Datensätze versuchte es perfekt funktioniert, ich glaube, diese Formel für kleine Anzahl von Datensätzen hilfreich sein können. Da ich mit dem gleichen Problem konfrontiert bin, nehme ich viel Zeit für 1500 Zeilen, da ich mehr als 100 Tausend Datensätze habe, also kann das nicht funktionieren. Gibt es irgendeine Art von VBA-Code, so dass wir die Formel vermeiden können und es schnell machen können und Ergebnis erhalten können. oder kann in SQL sein. Danke vielmals. –
@RakeshGupta - Ich habe eine VBA-Lösung hinzugefügt. – Mrig