一、IF函数——条件选择的不二法宝
提问:在制作业绩评价表(见图4-1)时,如何使用公式将业绩100万元以上的考核等级评价为“合格”,否则评价为“不合格”?
1.函数技能
IF函数的通俗翻译就是:如果……就……否则……它会根据给定的逻辑判断结果,自动返回相应的值。其中,当逻辑判断的计算结果为真(TRUE)时,将返回第一个参数值;当判断条件的计算结果为假(FALSE)时,则返回第二个参数值。如果省略逻辑判断结果为假(FALSE)时的参数值,则在逻辑判断结果为假(FALSE)时,直接返回“FALSE”。
IF函数看似简单,但是它配合其他计算公式或函数演绎出来的作用将非常强大,几乎在每个财务工作表中,都能看到它的身影。在第五章第一节的案例中,IF函数几乎凭借一己之力,肩负起了账龄分析的重任。
2.语法格式
IF(逻辑判断,判断结果为真时的值,判断结果为假时的值)
其中,判断结果为真(假)时的值可以为文本、数值、单元格地址或公式等。如果返回的值是文本,那么应该用英文双引号括起来。
日常生活中我们常说的“你去,我就去”,用IF函数来表达就是:
=IF(你是不是要去,我去,我不去)
3.提问解答
(1)现在我们再来看图4-1中的考核等级如何填写。根据IF函数的技能和语法格式可知:
C3单元格公式为:=IF(B3>=100,"合格","不合格")
或:=IF(B3<100, "不合格","合格")
执行列填充后,即可完成任务(见图4-2)。
(2)如果老板要求将业绩划分为三个评价等级:大于150万元为“优良”,100万~150万元为“合格”,小于100万元为“不合格”。
C3单元格公式为:=IF(B3>150,"优良",IF(B3>=100,"合格","不合格"))
或:=IF(B3<100,"不合格",IF(B3<=150,"合格","优良"))
执行列填充后,就可以向高要求的老板交差了(见图4-3)。
如上所述,公式返回的值还可以使用单元格地址,直接引用单元格中的值。假设我们已经在D1单元格录入“不合格”,D2单元格录入“合格”,D3单元格录入“优良”。则C3单元格的公式也可以设置为(以三个评价等级公式为例):
=IF(B3>150,D3,IF(B3>=100,D2,D1))
或:=IF(B3<100,D1,IF(B3<=150,D2,D3))
注意:使用单元格地址时不能加引号,否则该参数就表示为“A1”字符串(文本)而不是A1单元格对应的值。该原则适用于Excel的任何领域,请务必尊重Excel的脾气。
更多IF函数的嵌套应用,请参见第五章各案例。
4.拓展应用
如果你仅仅把IF函数用于上述例子中的条件选择,就未免太可惜了。对于任何一个函数,我们都要利用其技能特性,发挥更多的应用效果。比如,使用IF函数来净化表格环境。
例如,逸凡公司2013年费用分析表(见图4-4)中,我们在D列计算实际数相对预算数的增减率时,普通的做法是在D3单元格设置公式:=C3/B3-1。
由于展览费是没有预算(预算为0)的,而除数为0属于非法逻辑,导致展览费的变动率(D6单元格)直接报错,显示为“#DIV/0!”,影响美观。在这种情况下,我们可以采用IF函数对除数为0的情况进行特殊处理。当除数为0时,增减率显示为“预算外费用”,当除数不为0时,才按常规公式计算(见图4-5)。
D3单元格公式为:=IF(B3=0,"预算外费用",C3/B3-1)
5.注意事项
在编写多层IF函数公式时,应考虑到其可容纳的嵌套层级上限,2003版为7级,2007版开始实现了质的飞跃,达到了64级。
在多层嵌套时,一定要注意逻辑判断的递进层级与先后顺序,以免公式出错。假设图4-3中的公式为:=IF(B3>100,"合格",IF(B3>150,"优良","不合格")),就是典型的逻辑判断先后顺序错误。此时当业绩大于100时,公式就直接返回“合格”,无法再区分“优良”,其计算结果自然会出错。
此外,在使用函数嵌套时,建议先将函数的框架建好,再编辑函数各参数的值,否则容易因少括号或多括号而导致公式出错。比如编辑图4-3公式时,可先编辑:=IF(B3>150,"优良",IF(1,2,3)),然后再将里层的“IF(1,2,3)”修改为IF(B3>=100,"合格","不合格")。此经验在编辑复杂公式时非常实用。
二、AND函数、OR函数以及NOT函数——条件判断的得力助手
提问:如果要求在图4-5费用分析表的E列加备注,对增减率未超过±2%的项目标记“正常”(预算外费用仍然标记“预算外费用”)。该如何处理?
1.函数技能
(1)AND函数:全票通过才为真(TRUE),即当参数中的所有值都为真(TRUE)时,它才返回真(TRUE)值。
(2)OR函数:一票通过即为真(TRUE),即当参数中任何一个值为真(TRUE)时,它就返回真(TRUE)值。
(3)NOT函数:用于求反值,即不满足相关条件才返回真(TRUE)值。
2.语法格式
AND(条件1,条件2,条件3,……)
OR(条件1,条件2,条件3, ……)
NOT(条件)
此三个函数的最常用搭档是IF函数,它们联袂演绎的基本套路可以用下面几个通俗用语予以说明。
(1)日常用语“你们俩都去,我就去。”用AND函数和IF函数联袂表达就是:
=IF(AND(你去,他去),我去,我不去)
(2)流行语“不管你信不信,反正我是信了。”用OR函数和IF函数联袂表达就是:
=IF(OR(你相信,你不相信),我相信)
(3)谚语“山中无老虎,猴子称霸王。”用NOT函数和IF函数联袂表达就是:
=IF(NOT(山中有老虎),猴子称霸王,老虎称霸王)
3.提问解答
按照新的要求,需要标记“正常”的项目,其增减率应在±2%以内,即必须同时满足大于等于-2%和小于等于2%两个条件。在不使用ABS函数(求绝对值函数,本章第二节将进行介绍)的情况下,我们就需要AND函数和IF函数联手了。当然,我们还得首先考虑一层预算外费用的因素。
E3单元格公式为:
=IF(D3="预算外费用",D3,IF(AND(D3>=-2%,D3<=2%),"正常",""))
执行列填充后,即可看到正确的标记(见图4-6)。
如果领导要求对增减率超过2%的项目标记为“关注”,又该怎么办?这里的方法就比较多了,但是我们给OR函数一次露脸的机会吧。
增减率超过2%,实际上就是增减率小于-2%或者大于2%,属于只需要一票就通过的情况。所以OR函数和IF函数登台了。
E3单元格公式为:
=IF(D3="预算外费用",D3,IF(OR(D3<=-2%,D3>=2%),"关注",""))
执行列填充后,即可完成标记(见图4-7)。