我有两个带有唯一标识符的数据标签。标识符不是任何特定顺序。我需要我的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行要经过。
任何帮助都将不胜感激。
提前致谢。
答案 0 :(得分:0)
要使用公式,您需要第一个选项卡中的帮助列。
在空列中,我使用了列B,将以下内容放在第二行:
=IF(ISERROR(VLOOKUP(A2,Sheet2!B:B,1,FALSE)),MAX($B$1:B1)+1,"")
这将创建一列数字,这些数字会在第二张表中找不到的数字上增加。
此时,您只需在新列上过滤非空白的任何内容并获取列表。
如果您想在第三个标签中使用公式,请使用此公式引用第一个标签上的帮助列:
=IFERROR(INDEX(Sheet1!A:A,MATCH(ROW(1:1),Sheet1!B:B,0)),"")
然后复制/向下拖动足以获得空白。
有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