使用輔助柱說Column E
(變化E列的需要)有一個解決方法您的問題。
在Cell E2
寫以下公式:
=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)),"")
然後拖/根據需要複製下來這個公式。這會給你從Column A
非重複的號碼。
然後在Cell C2
輸入以下公式:
=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)),"")
這是陣列式所以通過按壓Ctrl鍵 + 移位提交它 + 輸入,並根據需要拖/向下複製此公式和你會得到你想要的結果,如下圖所示:
編輯: VBA解決方案 ________________________________________________________________________________
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
您好,感謝這個,我嘗試了100條記錄它很好地工作,我覺得這個公式可以是少量的記錄有幫助。因爲我面臨同樣的問題,因爲我只有1500行,所以我花了很多時間,因爲我有超過10萬條記錄,所以可能無法工作。是否有任何VBA代碼,以便我們可以避免該公式,並可以使其快速並可以得到結果。或者可能在sql中。非常感謝。 –
@RakeshGupta - 我已經添加了一個VBA解決方案。 – Mrig