5

基本上,我在 Excel 中有 2 个电子邮件地址列表...

Column A = Holds over 2051 rows of email addresses
Column B = Holds about 1994 rows of email addresses

我需要一种方法来找出 A 列中的哪些电子邮件地址在 B 列中找不到,并且最好将结果输出到新工作表或 C 列中。

之后,我需要能够在 A 列(如果有的话)中找到 B 列中的哪些电子邮件地址,并将该列表输出到新工作表或 D 列中。

我怎样才能做到这一点?

4

3 回答 3

6

在新工作表或 C 列中,使用 VLOOKUP() 和 IFERROR() 的组合,并为 A 的每一行拖动该公式。

=IF(ISERROR(VLOOKUP(A1, $B$1:$B$1995, 1, 0)), A1 & " NOT FOUND IN COLUMN B", "FOUND IN B")

这将返回两条不同的消息,具体取决于电子邮件是否在 B 中找到。

于 2013-06-24T17:50:59.953 回答
1

为什么不将 B 列中的数据复制粘贴到 A 列的末尾?然后为该列设置条件格式以突出显示所有计数超过 1 的项目。使用这个公式,“ =countif($A$1:A1,A1)>1”,不带引号。确保在执行此操作时选择了整个列。

另一种保持数据分离的方法。在 C 列中使用这样的公式=IF(ISERROR(VLOOKUP(A1,$B$1:$B$100,1,0)),A1,"");更改范围以匹配您的数据范围。然后填写公式,直到 A 列中的数据结束。要填写,请选择所需的范围并按“Cntl+D”。对 D 列重复此操作,但交换公式中的 A 和 B 引用并向下填充直到 B 列数据的底部。这将导致列 C 和 D 中的数据列出唯一值。复制并粘贴这些值,如果使用默认粘贴,请务必粘贴为值 Excel 会将公式而不是数据粘贴到另一组列 (E & F) 或相同的列中,然后对每列进行排序以消除空格。

于 2013-06-24T17:48:07.973 回答
0

你可以使用这个 Sub ..

Sub CrossCheck()
Dim LastA, LastB, r As Range
Dim x, Cn, Dn As Long

Set LastA = Range("A65536").End(xlUp)
Set LastB = Range("B65536").End(xlUp)
Cn = 1
Dn = 1

For x = 1 To LastB.Row
    Set r = Columns("B").Find(Cells(x, 1), , xlValues, xlWhole)
    If r Is Nothing Then
      Cells(Cn, 3) = Cells(x, 1)
      Cn = Cn + 1
    End If
Next
For x = 1 To LastA.Row
    Set r = Columns("A").Find(Cells(x, 2), , xlValues, xlWhole)
    If r Is Nothing Then
      Cells(Dn, 4) = Cells(x, 2)
      Dn = Dn + 1
    End If
Next

End Sub

希望这有帮助!

于 2013-06-25T02:26:03.550 回答