在使用IF函数时,我们经常会用到下面的结构形式:
=IF(A1>1, B1, “”)
也就是说,如果大于指定值,则输入另一个指定值,否则为空。
然而,这会带来一些潜在的问题。例如,在单元格B2中输入数值,在单元格B3中有一个公式,当B2中的值大于3时,输入B2中的值,否则输入空,如下图1所示。
图1
可以看到,一切都很完美!
但是,修改单元格B2中的数值为1,此时的结果如下图2所示。
图2
看到了什么?单元格B3中的值大于0,判断为TRUE;大于1000000,也判断为TRUE。这是怎么回事?
还是回到公式:
=IF(B2>3,B2,"")
当条件不满足时,会在单元格中输入空。双引号里面没有包含什么,Excel将其视为文本,虽然什么也没有,但它仍然是一个文本字符串。而Excel认为文本大于数值,因此虽然看起来是空值,但其比任何数字都大。这也是在上图2所示的工作表中看到的其比1000000都还大的原因。
此时,如果我们在工作表中筛选大于0的值,那么由公式生成的空单元格也会包含在其中。
当然,我们可以直接在公式中指定0:
=IF(B2>3,B2,"0")
然而,如果我们不喜欢这样让0显示出来,而是喜欢在这种情形中让单元格看起来为空呢?可以使用条件格式,如下图3所示。
图3
当单元格B2中的值大于3时,B3中的值为B2中的值,否则为空(其实,此时该单元格中值为0,只是设置其字体颜色为白色,看不见而已)。