Excel双向列表比较总结

我在一组Excel列表上运行双向比较来检查列表2中是否存在列表1中的ID(反之亦然)。 列表2中缺less的任何ID都是一个Dropout 。 列表2中添加的任何新ID都是New 。 这两个列表中的任何ID都是正在Returning

我尝试使用IF和VLOOKUP的组合。

=IF(ISERROR(VLOOKUP(sheet1!A2,sheet2!A:A,1,FALSE)),"Dropout","Returning")

单向比较(检查退出)正在工作。 我需要一种方法来检查新生(反方向比较)。 我怎样才能在同一个总结栏中做到这一点?

更新#1:

汇总表的B:C列中的值是从sheet1中绘制的。 那些需要一个公式来智能地从正确的工作表中select正确的数据。

更新#2:

出现一个Visual Basic脚本可能是一个更平滑的方式来解决这个问题。 任何指针如何处理这个?

1级考勤:

清单1

2class出勤:

清单2

概要:

概要

只是因为:

 Sub outpt() Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet Dim arr1 As Variant, arr2 As Variant, outarr As Variant Dim dict As Object Dim i As Long, j As Long Dim st As Boolean, nd As Boolean Dim item As Variant Set dict = CreateObject("scripting.Dictionary") Set ws1 = Worksheets("Sheet1") 'Class 1 Set ws2 = Worksheets("Sheet2") 'Class 2 Set ws3 = Worksheets("Sheet3") 'Summary With ws1 arr1 = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp)).Value End With With ws2 arr2 = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp)).Value End With For i = LBound(arr1, 1) To UBound(arr1, 1) On Error Resume Next dict.Add arr1(i, 1), arr1(i, 2) On Error GoTo 0 Next i For i = LBound(arr2, 1) To UBound(arr2, 1) On Error Resume Next dict.Add arr2(i, 1), arr2(i, 2) On Error GoTo 0 Next i ReDim outarr(1 To dict.Count, 1 To 3) As Variant j = 1 For Each item In dict.keys st = False nd = False For i = LBound(arr1, 1) To UBound(arr1, 1) If arr1(i, 1) = item Then st = True Exit For End If Next i For i = LBound(arr2, 1) To UBound(arr2, 1) If arr2(i, 1) = item Then nd = True Exit For End If Next i outarr(j, 2) = item outarr(j, 3) = dict(item) If st And nd Then outarr(j, 1) = "Returning" ElseIf st Then outarr(j, 1) = "Dropout" Else outarr(j, 1) = "New" End If j = j + 1 Next item 'Assumes titles already in row 1 ws3.Range("A2").Resize(dict.Count, 3).Value = outarr End Sub 

创build:

在这里输入图像说明

一个简单的技巧可能是以这种方式复制数据:

1级2级

2级1级

从第一列到第二列执行VLOOKUP将得到结果。

你可以简单地结合2个公式:

 =IF(ISERROR(VLOOKUP(Sheet3!B2,Sheet2!A:A,1,FALSE)),"Dropout",IF(ISERROR(VLOOKUP(Sheet3!B2,Sheet1!A:A,1,FALSE)),"New","Returning")) 

(假设1级考勤在Sheet1上,2级考勤在Sheet2上,总结在Sheet3上)

结果

但是我个人更喜欢更可读的东西(比如NIVeR的答案)。

当然,Scott Craner的提议更好。