所以说我有一个以下格式的电子表格:
Sheet 1 | Sheet 2
name email | name email
Mike Jones mikej@mail | John Smith jsmith@mail
John Smith johns@mail | Mike Jones mjones@mail
John Public jpublic@mail | Chris Paul cpaul@mail
Chris Paul cpaul@mail | John Public jpublic@mail
Jim Abram jambram@mail |
Tim Toole ttoole@mail |
我想比较具有匹配名称的条目的电子邮件,并显示不匹配的名称(如果需要,我可以将所有数据放在一张纸上),所以基本上,这将输出:
迈克琼斯John Smith
我试图用公式做到这一点,但我想我可能不得不用一个宏...有人能指出我这样的例子吗?
我正在尝试这些方面:
=IF(ISERROR(MATCH(Sheet1!A1,Sheet2!$A$1:$A$5,0)),(IF(ISERROR(MATCH(Sheet1!B1,Sheet2!$B$1:$B$5,0)), Sheet1!A1, ""),"")
并且真的想尝试将其表达为宏。
答案 0 :(得分:0)
如果可以在第一张纸上插入一列,然后对其进行过滤以找到重复项,那么您可以这样做:
name email Duplicate Count
Mike Jones mikej@mail 0
John Smith johns@mail 0
John Public jpublic@mail 1
Chris Paul cpaul@mail 1
Jim Abram jambram@mail 0
Tim Toole ttoole@mail 0
重复计数列具有以下内容:
=SUMPRODUCT((D:D=A2)*1,(B2=E:E)*1)
如果列D和列E是您上面的第二个表。
答案 1 :(得分:0)
这是一些将匹配存储在工作簿中的简短代码。您需要包含对“Microsoft Scripting Runtime”的引用。
Sub Compare(rng1 As Range, rng2 As Range, rngTarget As Range)
Dim d As New Scripting.Dictionary
Dim rngTemp As Range
Const cMailCol As Long = 2
For Each rngTemp In rng1.Columns(1).Cells
d.Add rngTemp.Offset(cMailCol - 1).Value, rngTemp.Value
Next
For Each rngTemp In rng2.Columns(1).Cells
If d.Exists(rngTemp.Offset(cMailCol - 1).Value) Then
rngTarget = d(rngTemp.Offset(cMailCol - 1).Value)
Set rngTarget = rngTarget.Offset(1)
End If
Next
End Sub
将其称为Compare [A2:B7], [D2:E5], [G2]
,以便将前两个范围的匹配项存储在G2中!
答案 2 :(得分:0)
这是一个快速简单的公式解决方案的尝试!!
名称单元格B1 =电子邮件。
输入B2 = IF(VLOOKUP(A2,Sheet1!$A$1:$B$7,2,0<>VLOOKUP(A2,Sheet2!$A$1:$I$5,2,0),VLOOKUP(A2,Sheet1!$A$1:$B$7,2,0),"")
复制列B并在collumn C
"#N/A"
替换为""
""