2016-06-25 71 views
1

我有成百上千的記錄,我只想在Excel中找到非重複值。從列A我想要超過列C中的值不等於B.有人可以幫助我一樣。非重複值複製粘貼

A | B | C 
-------|-------|------- 
    1 | 4 | 1 
    2 | 5 | 2 
    3 | 6 | 3 
    4 | 7 | 13 
    5 | 8 | 14 
    6 | 9 | 15 
    7 | 10 | 
    8 | 11 | 
    9 | 12 | 
    10 | 16 | 
    11 | 17 | 
    12 |  | 
    13 |  | 
    14 |  | 
    15 |  | 
    16 |  | 
    17 |  | 

我已經用C粘貼我的價值觀,並把這個公式B中列well..But這是不是有些細胞後的工作嘗試。

=IF(ISERROR(MATCH(A1,$C$1:$C$10000,0)),"",A1) 

回答

0

使用輔助柱說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鍵 + 移位提交它 + 輸入,並根據需要拖/向下複製此公式和你會得到你想要的結果,如下圖所示:

enter image description here

編輯: 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 
+0

您好,感謝這個,我嘗試了100條記錄它很好地工作,我覺得這個公式可以是少量的記錄有幫助。因爲我面臨同樣的問題,因爲我只有1500行,所以我花了很多時間,因爲我有超過10萬條記錄,所以可能無法工作。是否有任何VBA代碼,以便我們可以避免該公式,並可以使其快速並可以得到結果。或者可能在sql中。非常感謝。 –

+0

@RakeshGupta - 我已經添加了一個VBA解決方案。 – Mrig