Try these UDF's originally developed by Peter Moran. They do exactly what you are asking for ...
<font face=Tahoma New>
<SPAN style="color:#00007F">Function</SPAN> VLOOKUPNTH(lookup_value, table_array <SPAN style="color:#00007F">As</SPAN> Range, _
col_index_num <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>, nth_value)
<SPAN style="color:#007F00">' Extension to VLOOKUP function. Allows for finding</SPAN>
<SPAN style="color:#007F00">' the " nth " item that matches the lookup value.</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> nRow <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> nVal <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> bFound <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>
VLOOKUPNTH = "Not Found"
<SPAN style="color:#00007F">With</SPAN> table_array
<SPAN style="color:#00007F">For</SPAN> nRow = 1 <SPAN style="color:#00007F">To</SPAN> .Rows.Count
<SPAN style="color:#00007F">If</SPAN> .Cells(nRow, 1).Value = lookup_value <SPAN style="color:#00007F">Then</SPAN>
nVal = nVal + 1
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">If</SPAN> nVal = nth_value <SPAN style="color:#00007F">Then</SPAN>
VLOOKUPNTH = .Cells(nRow, col_index_num).Text
<SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Function</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Next</SPAN> nRow
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Function</SPAN>
<SPAN style="color:#00007F">Function</SPAN> HLOOKUPNTH(lookup_value, table_array <SPAN style="color:#00007F">As</SPAN> Range, _
Row_index_num <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, nth_value)
<SPAN style="color:#007F00">' Extension to HLOOKUP function. Allows for finding</SPAN>
<SPAN style="color:#007F00">' the " nth " item that matches the lookup value.</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> nCol <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> nVal <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> bFound <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Boolean</SPAN>
HLOOKUPNTH = "Not Found"
<SPAN style="color:#00007F">With</SPAN> table_array
<SPAN style="color:#00007F">For</SPAN> nCol = 1 <SPAN style="color:#00007F">To</SPAN> .Columns.Count
<SPAN style="color:#00007F">If</SPAN> .Cells(1, nCol).Value = lookup_value <SPAN style="color:#00007F">Then</SPAN>
nVal = nVal + 1
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">If</SPAN> nVal = nth_value <SPAN style="color:#00007F">Then</SPAN>
HLOOKUPNTH = .Cells(Row_index_num, nCol).Text
<SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Function</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Next</SPAN> nCol
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Function</SPAN></FONT>
HTH