I need to do a lookup based on 2 criteria so I've come up with this:

Code:

`Range("P2").Value = Evaluate("INDEX(Mapping!$C:$C,MATCH($G2 & $J2,Mapping!$A:$A&Mapping!$B:$B,0))")`

Great

But now I need to work out how to copy it down to the rest of the rows.

I can do the P2:P -whatever the final row is bit, but I need to make G2 & J2 change according to the row it's on.

Something like:

Code:

`Range("P2:P"&lst_row).Value = Evaluate("INDEX(Mapping!$C:$C,MATCH($G" & row " & $J" & row",Mapping!$A:$A&Mapping!$B:$B,0))")`

I don't want to do a loop as it would take too long with the volume of data, & there's already huge amounts going on with the code.

Thanks