View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Ron Rosenfeld[_2_] Ron Rosenfeld[_2_] is offline
external usenet poster
 
Posts: 1,045
Default IF statement not returning correct answer

On Fri, 23 Nov 2012 16:24:03 +0000, KerriL wrote:


Hello,

I am hoping someone can help me with this. Essentially, I am trying to
construct an If statement that will return "OK" or "NO" based on whether
one cell is equal to any of another 5. All 6 cells in question are
populated via a VLOOKUP function or a calculated formula. All the cells
themselves are populated correctly. However, the IF statement is not
able to correctly determine whether the one cell matches one of the
other five. To put it another way, if M1 is equal to H1, I1, J1, K1, or
L1, I want the formula to display "OK", and if M1 does not equal any of
those, I want it to display "NO". Sometimes the equation works, but 99%
of the time it doesn't. I think it has something to do with how the
Vlookup/other formulas are formatting the numbers in the cells that the
IF statement is checking--but I can't figure out how. I've told all the
cells to format as number decimals with two digits--and the rows where
the If statement works seem to be formatted the same as the rows where
it doesn't.

I've tried two different IF statements, and both have the same issue. Is
something wrong with my formulas, or is this a formating issue?

=IF(OR(M697=H697,M697=I697,M697=J697,M697=K697,M6 97=L697),"OK","NO")

=IF(M693=H693,"OK",IF(M693=I693,"OK",IF(M693=J693 ,"OK",IF(M693=K693,"OK",IF(M693=L693,"OK","NO")))) )

Thank you very much for your help.


If you are not getting a result of OK, then none of your equalities are evaluating to TRUE. In other words, although you may believe that M697=I697 (or one of the others), it does not.
The value stored in the cell does not change as a result of formatting, unless you have checked the option Precision as Displayed (which is almost never recommended).
To test for numeric equality, especially with calculated values, you should either test for a very small difference (depending on the level of precision you feel is suitable), or explicitly ROUND the values to your desired level of precision.