Excel - 按顺序查找不匹配的数据

时间:2016-09-26 13:12:33

标签: excel indexing excel-formula match vlookup

我有两个带有唯一标识符的数据标签。标识符不是任何特定顺序。我需要我的vlookup / index / match来显示选项卡2中没有的所有标识符。

原因:我在他们使用的系统无法进行数据传输的地方工作。我必须看看有什么数据与系统上当前的数据进行比较。任何缺少的数据,我都需要添加到新系统中。

实施例

Tab1 Column A:
123456,
654321,
789456,
456789.

Tab2 Column B:
654321,
123456,
456789.

在标签3中,我想要excel告诉我标签2中没有789456。 正如您在上面的示例中所看到的,唯一标识符可以是任何顺序,因此我不能将两个列并排放置并要求在2之间进行匹配 - 我需要它来查看整个列。

我见过的所有教程都假设A列按照B列的顺序匹配

我有70,000行要经过。

任何帮助都将不胜感激。

提前致谢。

4 个答案:

答案 0 :(得分:0)

要使用公式,您需要第一个选项卡中的帮助列。

在空列中,我使用了列B,将以下内容放在第二行:

=IF(ISERROR(VLOOKUP(A2,Sheet2!B:B,1,FALSE)),MAX($B$1:B1)+1,"")

这将创建一列数字,这些数字会在第二张表中找不到的数字上增加。

enter image description here

此时,您只需在新列上过滤非空白的任何内容并获取列表。

如果您想在第三个标签中使用公式,请使用此公式引用第一个标签上的帮助列:

=IFERROR(INDEX(Sheet1!A:A,MATCH(ROW(1:1),Sheet1!B:B,0)),"")

然后复制/向下拖动足以获得空白。

enter image description here

有70,000个项目我会避免使用数组公式,因为它会减慢计算速度,甚至可能会崩溃。

答案 1 :(得分:0)

您可以尝试使用以下内容:

=IFERROR(VLOOKUP(<value cell>, 'Tab2'!B:B, 1, FALSE), FALSE)<>FALSE

将选项卡1列A中的所有值复制到选项卡3列A.在选项卡3列B中,使用引用A列中的单元格,将上述公式粘贴到A列中存在值的每一行中行作为值单元格。该公式将尝试从选项卡2中的选项卡1中查找该值。如果缺少该值,则会生成错误,该错误由IFERROR函数捕获,该函数将返回FALSE而不是让错误转义。最后,如果值存在于选项卡2中,则返回FALSE返回TRUE;如果选项卡2中缺少值,则返回FALSE。

从这一点开始,您可以使用选项卡3中的列过滤器仅查看具有TRUE值的行,这些行仅显示选项卡1和选项卡2中都存在的值。

答案 2 :(得分:0)

对此的解释是COUNTIF()公式为:

=COUNTIF(Sheet1!A:A,Sheet2!A1)

对所有行应用后,只需过滤那些值为0的行。

答案 3 :(得分:0)

此宏将在Sheet3

中生成一个紧凑列表
Sub WhatsMissing()
    Dim s1 As Worksheet, s2 As Worksheet, s3 As Worksheet
    Dim r1 As Range, N As Long, K As Long, i As Long
    Dim v As Variant

    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    Set s3 = Sheets("Sheet3")
    Set r2 = s2.Range("B:B")

    K = 1
    N = s1.Cells(Rows.Count, "A").End(xlUp).Row
    With Application.WorksheetFunction
        For i = 1 To N
            v = s1.Cells(i, "A").Value
            If .CountIf(r2, v) = 0 Then
                s3.Cells(K, "A").Value = v
                K = K + 1
            End If
        Next i
    End With
End Sub