I have a list of task ID numbers in column A that are set up like this: Look at the cell above and add .01 to it. The result is a a list of numbers 3.01, 3.02, 3.03, etc. [....] I know the formula itself works because if I use the Paste Value option to paste a number from Column A into the lookup cell the formula works fine, but if I manually type in the number from Column A, I get #NA.

No, the formula does not work. And your paste-value experiment proves it.

The short answer is: if you enter 3.01 into A1, the subsequent formulas should be of the form =

**ROUND(**A1+0.01

**, 2)**.

To demonstrate, =VLOOKUP(3.01+0.01, {3.02}, 1, 0) returns #N/A, but =VLOOKUP(

**ROUND(**3.01+0.01

**, 2)**, {3.02}, 1, 0) returns 3.02.

In general, whenever we expect a calculation that involves decimal fractions (including division of integers) to be accurate to some number of decimal places, we should explicitly round to that number of decimal places -- and not to an arbitrary number of decimal places like 10, as some people suggest.

The root cause of the problem is: Excel uses 64-bit binary floating-point to represent numbers internally, and most decimal fractions cannot be converted to that binary form exactly.

Moreover, a particular decimal fraction might be approximated differently in that binary form, depending on the magnitude of the number. That is the reason, for example, why IF(10.01-10 = 0.01, TRUE) returns FALSE(!).