Can anyone explain how Excel treats function calls like:

=IF(ISNA(VLOOKUP(100,MyRange,2,False)),"",VLOOKUP(100,MyRange,2,False))

A colleague says that Excel "intelligently" figures out that the two vlookup calls are the same, so it does only one vlookup call in order to return the result of this formula (instead of calling vlookup twice). Is this true? And what are the limitations of this call handling?

I know I should use IFERROR(vlookup..) here. But what if I have an outside function like BDP(...) which returns the _text_ "#N/A N A" (and isserr doesn't work)? Should I make a User-defined function to avoid making the call twice?

Thanks!