Search code examples
vbaexcelexcel-2010excel-2007

VLookup the same person multiple dates


I have two spreadsheets:

enter image description here

I want to match both sheets and make sure that dates match for every person. E.g. Person 1 has three different dates and I want to match them exactly 1:1.

Person 1, 3/2/2015 (Table A) -> Person 1, 3/2/2015 (Table B)
Person 1, 3/5/2015 (Table A) -> Person 1, 3/5/2015 (Table B)
Person 1, 3/6/2015 (Table A) -> Person 1, 3/6/2015 (Table B)

For the moment I loop through "No." column in Table A and use Application.VLookup on Table B but that only works when a Person has only one date. Otherwise it compares to the first date from Table B. See code:

For sheetArowCounter= 2 To sheetAlastRow
    Sheets("A").Select
    sheetAperson = Cells(sheetArowCounter, 1)
    sheetAdate = Cells(sheetArowCounter, 2)
    Sheets("B").Select
    sheetBdate = Application.VLookup(sheetAperson, _
         Sheets("B").Range(Cells(1, 1), Cells(sheetBLastRow, 2)), 2, False)
    If IsError(sheetBdate ) Then
        personFromTableAnotFound = personFromTableAnotFound + 1
    ElseIf sheetBdate <> sheetAdate Then
        sheetAdateNotMatched = sheetAdateNotMatched + 1
    End If
    sheetAdateCompared = sheetAdateCompared + 1
Next sheetArowCounter

Any idea how can I do that?


Solution

  • I agreed with Jeeped above. Try using a SUMIF. You can even nest the SUMIF in an IF statement to return text: ie: "Match", "No match"