Yes, KVS Sir,
Your is faster but I didn't understand how.
However, I have come up with one more technique.
Here is it.
Function NthMatchE(ByVal Lvalue As Variant, ByVal Lrange As Variant, Mnum As Variant)
f = "SMALL(IF(" & Lrange.Address & "=""" & Lvalue & """,ROW($1:" & Lrange.Rows.Count & "))," & Mnum & ")"
NthMatchE = Evaluate(f)
End Function
Because when I tried the array construction, it was faster than every other technique.
So I tried to copy the same behavior using Evaluate Function.
Yours took 4.15 secs but it takes only 2 sec. (would be more fast on your PC)
Try it and pls share the results.