We have a lot of actual Microsoft certified MVPs on this site, and I have never seen anyone recommend that. I suppose it might work, but it is very unorthodox.
What you say about the "amount of rows" is a true statement for the the range you are looking into, so you commonly see the third argument set up like that.
But understand that VLOOKUP is looking up a
single value, the value you list in the first argument. So while it may work to use the whole range (I assume then it is probably just picking the value from the row that the formula is located in), it doesn't really follow the logic of the function. Search this site, or any tutorial on the VLOOKUP function, and you would be hard-pressed to find a single one that tells you to structure it that way.
It doesn't really matter that you don't know how many VLOOKUPs you may have, because Excel is smart enough to automatically adjust it for you.
So, if in the first row, you were looking up the value in cell A1, and you had this formula:
Code:
[COLOR=#333333]=VLOOKUP(A1,Physician!A:P,5,FALSE)
[/COLOR]
and you copy it down your column, Excel will adjust it so the next one looks like:
Code:
[COLOR=#333333]=VLOOKUP(A[/COLOR][COLOR=#ff0000][B]2[/B][/COLOR][COLOR=#333333],Physician!A:P,5,FALSE)
[/COLOR]
So there is no reason to use A:A, Excel already take care of it.
Back to your question, as long as none of your values of the column you are returning have a 0 in them, you can replace the zeroes that are being returned by the blanks by structuring the formula like this:
Code:
=IF(VLOOKUP(...)=0,"",VLOOKUP(...))